diff --git a/apps/api/src/routers/projects.ts b/apps/api/src/routers/projects.ts index f3006d90..9aa16cb2 100644 --- a/apps/api/src/routers/projects.ts +++ b/apps/api/src/routers/projects.ts @@ -21,6 +21,7 @@ const filterPropsSchema = z.object({ .optional(), pushed: z.string().optional(), created: z.string().optional(), + repoName: z.string().optional() }); const optionsSchema = z.object({ diff --git a/apps/api/src/services/project.service.ts b/apps/api/src/services/project.service.ts index 7ae4d5e9..0981dff1 100644 --- a/apps/api/src/services/project.service.ts +++ b/apps/api/src/services/project.service.ts @@ -47,6 +47,10 @@ export const projectService = { queryParts.push(`created:${filters.created}`); } + if(filters.repoName) { + const trimmedRepoName = filters.repoName.trim(); + queryParts.push(`${trimmedRepoName} in:name`) + } // Default fields to filter contributor friendly repos queryParts.push(`is:organization`); queryParts.push(`is:public`); diff --git a/apps/web/src/components/ui/FiltersContainer.tsx b/apps/web/src/components/ui/FiltersContainer.tsx index 84c92feb..2d6cbc6f 100644 --- a/apps/web/src/components/ui/FiltersContainer.tsx +++ b/apps/web/src/components/ui/FiltersContainer.tsx @@ -25,7 +25,7 @@ export default function FiltersContainer() { const { toggleShowFilters } = useFilterStore(); const { setRenderProjects } = useRenderProjects(); - const { filters, resetFilters } = useFilterInputStore(); + const { filters, resetFilters, updateFilters } = useFilterInputStore(); const { setData, eraseData } = useProjectsData(); const { setProjectsNotFound } = useProjectsNotFoundStore(); const getProjects = useGetProjects(); @@ -80,6 +80,16 @@ export default function FiltersContainer() { {/* Filter Content */}