From 1f652f2bb95660a75bd26477b06cc4d494508174 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 19:16:14 +0200 Subject: [PATCH 1/2] feat: Filter out unused repositories --- src/components/Header.tsx | 68 ++++++++++++++++++++++++--------------- src/services/api.ts | 2 +- 2 files changed, 43 insertions(+), 27 deletions(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index cbcf7b1..04c3d0b 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -9,35 +9,51 @@ import { Repository } from '../types'; +import { + MIRRORS +} from '../services/api'; + interface HeaderProps { - onRepositoryChange: (repo: Repository) => void; + onRepositoryChange: (repo: Repository) => void; } -export function Header({ onRepositoryChange }: HeaderProps): JSX.Element { - return ( -
-
-
- {/* Logo Section */} -
- -
+export function Header({ + onRepositoryChange +}: HeaderProps): JSX.Element { + const usedRepositories = new Set(Object.values(MIRRORS).map(mirror => mirror.repository)); + + const filteredRepository = Object.keys(Repository).reduce((acc, key) => { + // Говно-код :D + if ((key === 'ALL') || usedRepositories.has(Repository[key as keyof typeof Repository])) acc[key] = Repository[key as keyof typeof Repository]; + return acc; + }, {} as Record); - {/* Repository Filter Dropdown */} -
- -
+ return ( +
+
+
+ {/* Logo Section */} - {/* Theme Toggle */} - -
-
-
- ); +
+ +
+ + {/* Repository Filter Dropdown */} + +
+ +
+ + {/* Theme Toggle */} + +
+
+
+ ); } diff --git a/src/services/api.ts b/src/services/api.ts index aaf7c4a..a620e8f 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -4,7 +4,7 @@ import { } from '../types'; // Define the mirrors from which packages will be fetched -const MIRRORS: Record = { From b79bb5882950339fc060fa76d43e58d1d915dbf5 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 19:29:28 +0200 Subject: [PATCH 2/2] Refactor: Update and remove comments --- src/components/Header.tsx | 3 ++- src/services/api.ts | 4 ---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 04c3d0b..58f89bf 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -23,7 +23,8 @@ export function Header({ const usedRepositories = new Set(Object.values(MIRRORS).map(mirror => mirror.repository)); const filteredRepository = Object.keys(Repository).reduce((acc, key) => { - // Говно-код :D + // This code is flawed because it explicitly checks for 'ALL', reducing flexibility. + // A more generic approach should be used to filter unused repositories while preserving 'ALL'. if ((key === 'ALL') || usedRepositories.has(Repository[key as keyof typeof Repository])) acc[key] = Repository[key as keyof typeof Repository]; return acc; }, {} as Record); diff --git a/src/services/api.ts b/src/services/api.ts index a620e8f..26dea7a 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -8,10 +8,6 @@ export const MIRRORS: Record = { - /** - * Сейчас данный код будет удобным вариантом, - * чтобы убрать убирать пустые (неиспользуемые) репозитории из главной страницы - */ 'core': { url: 'https://raw.githubusercontent.com/Snigdha-OS/snigdhaos-core/refs/heads/master/packages.txt', repository: ('core' as Repository)