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 (