From 39cc3065dd8b3add2c86d17b857e1829e2d1d864 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 13:01:04 +0200 Subject: [PATCH 1/3] bump all dependencies --- package.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 9a25911..6ef5076 100644 --- a/package.json +++ b/package.json @@ -33,24 +33,24 @@ }, "dependencies": { "gh-pages": "^6.3.0", - "lucide-react": "^0.344.0", - "react": "^18.3.1", - "react-dom": "^18.3.1" + "lucide-react": "^0.471.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { - "@eslint/js": "^9.18.0", - "@types/react": "^18.3.18", - "@types/react-dom": "^18.3.5", + "@eslint/js": "^9.17.0", + "@types/react": "^19.0.4", + "@types/react-dom": "^19.0.2", "@vitejs/plugin-react": "^4.3.4", "autoprefixer": "^10.4.20", - "eslint": "^9.18.0", + "eslint": "^9.17.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.16", "globals": "^15.14.0", "postcss": "^8.4.49", "tailwindcss": "^3.4.17", - "typescript": "^5.7.3", - "typescript-eslint": "^8.19.1", - "vite": "^5.4.11" + "typescript": "^5.7.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.7" } -} \ No newline at end of file +} From a039720a71df3fd43fdb1c5d88a8c72d65d73db1 Mon Sep 17 00:00:00 2001 From: XlebyllleK <96723939+XlebyllleK@users.noreply.github.com> Date: Sat, 11 Jan 2025 13:50:29 +0200 Subject: [PATCH 2/3] feat: use JSX.Element as component type --- src/App.tsx | 9 +++- src/components/Header.tsx | 4 ++ src/components/InstallGuide.tsx | 10 ++-- src/components/Logo.tsx | 6 ++- src/components/PackageCard.tsx | 8 ++- src/components/PackageCard/Badge.tsx | 6 ++- src/components/PackageCard/ExpandButton.tsx | 6 ++- src/components/PackageCard/index.tsx | 8 ++- src/components/PackageList.tsx | 6 ++- src/components/RepositorySelector.tsx | 31 ------------ src/components/SearchBar.tsx | 10 ++-- src/components/ThemeToggle.tsx | 6 ++- src/components/fetchPackages.tsx | 55 --------------------- src/hooks/usePackages.ts | 7 ++- src/hooks/useTheme.ts | 9 +++- src/types.ts | 3 ++ 16 files changed, 77 insertions(+), 107 deletions(-) delete mode 100644 src/components/RepositorySelector.tsx delete mode 100644 src/components/fetchPackages.tsx diff --git a/src/App.tsx b/src/App.tsx index 1dd82b2..8c5eaee 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,9 @@ -import { useState, useEffect } from 'react'; +import { + useState, + useEffect, + JSX +} from 'react'; + import { Header } from './components/Header'; import { SearchBar } from './components/SearchBar'; import { PackageList } from './components/PackageList'; @@ -8,7 +13,7 @@ import { Repository } from './types'; -export default function App() { +export default function App(): JSX.Element { const { packages, loading, error } = usePackages(); const [search, setSearch] = useState(''); const [selectedRepository, setSelectedRepository] = useState('all'); diff --git a/src/components/Header.tsx b/src/components/Header.tsx index abde679..2b3edbd 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,3 +1,7 @@ +import { + JSX +} from 'react'; + import { ThemeToggle } from './ThemeToggle'; import { Logo } from './Logo'; diff --git a/src/components/InstallGuide.tsx b/src/components/InstallGuide.tsx index 2537374..2da65f2 100644 --- a/src/components/InstallGuide.tsx +++ b/src/components/InstallGuide.tsx @@ -1,12 +1,16 @@ -import React from 'react'; +import { + useState, + JSX +} from 'react'; + import { Terminal, Copy, Check } from 'lucide-react'; interface InstallGuideProps { packageName: string; } -export function InstallGuide({ packageName }: InstallGuideProps) { - const [copied, setCopied] = React.useState(false); +export function InstallGuide({ packageName }: InstallGuideProps): JSX.Element { + const [copied, setCopied] = useState(false); const command = `sudo pacman -S ${packageName}`; diff --git a/src/components/Logo.tsx b/src/components/Logo.tsx index 5a2f0bd..4c87568 100644 --- a/src/components/Logo.tsx +++ b/src/components/Logo.tsx @@ -1,4 +1,8 @@ -export function Logo() { +import { + JSX +} from 'react'; + +export function Logo(): JSX.Element { return (
{/* Replace this SVG with your custom logo */} diff --git a/src/components/PackageCard.tsx b/src/components/PackageCard.tsx index 45fe391..b945718 100644 --- a/src/components/PackageCard.tsx +++ b/src/components/PackageCard.tsx @@ -1,4 +1,8 @@ -import { useState } from 'react'; +import { + useState, + JSX +} from 'react'; + import { Box, ChevronDown, ChevronUp } from 'lucide-react'; import { Package } from '../types'; import { InstallGuide } from './InstallGuide'; @@ -7,7 +11,7 @@ interface PackageCardProps { package: Package; } -export function PackageCard({ package: pkg }: PackageCardProps) { +export function PackageCard({ package: pkg }: PackageCardProps): JSX.Element { const [expanded, setExpanded] = useState(false); return ( diff --git a/src/components/PackageCard/Badge.tsx b/src/components/PackageCard/Badge.tsx index 96c5455..1dc932f 100644 --- a/src/components/PackageCard/Badge.tsx +++ b/src/components/PackageCard/Badge.tsx @@ -1,4 +1,6 @@ -import React from 'react'; +import React, { + JSX +} from 'react'; interface BadgeProps { children: React.ReactNode; @@ -20,7 +22,7 @@ const sizeClasses = { large: 'text-base px-4 py-2', }; -export function Badge({ children, color = 'default', size = 'medium', ariaLabel }: BadgeProps) { +export function Badge({ children, color = 'default', size = 'medium', ariaLabel }: BadgeProps): JSX.Element { const badgeColorClass = colorClasses[color] || colorClasses.default; const badgeSizeClass = sizeClasses[size] || sizeClasses.medium; diff --git a/src/components/PackageCard/ExpandButton.tsx b/src/components/PackageCard/ExpandButton.tsx index f69a1f4..79abfa0 100644 --- a/src/components/PackageCard/ExpandButton.tsx +++ b/src/components/PackageCard/ExpandButton.tsx @@ -1,3 +1,7 @@ +import { + JSX +} from 'react'; + import { ChevronDown, ChevronUp } from 'lucide-react'; interface ExpandButtonProps { @@ -5,7 +9,7 @@ interface ExpandButtonProps { onClick: () => void; } -export function ExpandButton({ expanded, onClick }: ExpandButtonProps) { +export function ExpandButton({ expanded, onClick }: ExpandButtonProps): JSX.Element { return (