From a9463ad10b4fc0eb1ac45a15c25277d0dbc5fbf8 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:16:49 +0200 Subject: [PATCH 1/4] types.ts: Replace type with enum --- src/types.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/types.ts b/src/types.ts index da3e616..43a9238 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,5 +1,11 @@ // Type alias for repository categories -export type Repository = 'core' | 'extra' | 'community' | 'multilib'; +export enum Repository { + All = 'all', + Core = 'core', + Extra = 'extra', + Community = 'community', + Multilib = 'multilib' +} // Interface representing a single package export interface Package { From 317d67f810c56f127ea61261ff497ad3db6d288d Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:18:34 +0200 Subject: [PATCH 2/4] Update App.tsx --- src/App.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index a025e8f..1dd82b2 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,10 +4,14 @@ import { SearchBar } from './components/SearchBar'; import { PackageList } from './components/PackageList'; import { usePackages } from './hooks/usePackages'; +import { + Repository +} from './types'; + export default function App() { const { packages, loading, error } = usePackages(); const [search, setSearch] = useState(''); - const [selectedRepository, setSelectedRepository] = useState<'core' | 'extra' | 'all'>('all'); + const [selectedRepository, setSelectedRepository] = useState('all'); const [debouncedSearch, setDebouncedSearch] = useState(search); // Debounce search to optimize performance @@ -34,7 +38,7 @@ export default function App() { setSearch(value); }; - const handleRepositoryFilterChange = (repo: 'core' | 'extra' | 'all') => { + const handleRepositoryFilterChange = (repo: Repository) => { setSelectedRepository(repo); }; From 4cca03867cc0cecb7653e7ddd61f7e776219ebba Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:22:01 +0200 Subject: [PATCH 3/4] Update Header.tsx --- src/components/Header.tsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 16cb30d..79185fc 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,11 +1,15 @@ import { ThemeToggle } from './ThemeToggle'; import { Logo } from './Logo'; +import { + Repository +} from '../types'; + interface HeaderProps { - onRepositoryChange: (repo: 'core' | 'extra' | 'all') => void; + onRepositoryChange: (repo: Repository) => void; } -export function Header({ onRepositoryChange }: HeaderProps) { +export function Header({ onRepositoryChange }: HeaderProps): JSX.Element { return (
@@ -17,14 +21,12 @@ export function Header({ onRepositoryChange }: HeaderProps) { {/* Repository Filter Dropdown */}
- onRepositoryChange(e.target.value as Repository + } defaultValue="all" className="bg-nord-5 dark:bg-nord-1 text-black dark:text-white border-2 border-nord-4 dark:border-nord-2 rounded-lg py-2 px-4 focus:ring-2 focus:ring-nord-8"> + {Object.values(Repository).map((repository) => ( + + ))}
From e33caa9ad60af522f66fb4269bc61893ab75b55b Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:24:03 +0200 Subject: [PATCH 4/4] Update Header.tsx --- src/components/Header.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 79185fc..abde679 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -22,7 +22,7 @@ export function Header({ onRepositoryChange }: HeaderProps): JSX.Element { {/* Repository Filter Dropdown */}