Skip to content

Commit 109b602

Browse files
fix(web): resolve ESLint errors in React components
1 parent 64af322 commit 109b602

5 files changed

Lines changed: 12 additions & 14 deletions

File tree

apps/web/src/components/Navbar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Link } from 'react-router-dom';
2-
import { useTheme } from '../lib/theme';
2+
import { useTheme } from '../lib/useTheme';
33
import './Navbar.css';
44

55
export default function Navbar() {

apps/web/src/lib/theme.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createContext, useContext, useEffect, useState, type ReactNode } from 'react';
1+
import { createContext, useEffect, useState, type ReactNode } from 'react';
22

33
type Theme = 'light' | 'dark';
44

@@ -40,8 +40,4 @@ export function ThemeProvider({ children }: { children: ReactNode }) {
4040
);
4141
}
4242

43-
export function useTheme(): ThemeContextValue {
44-
const ctx = useContext(ThemeContext);
45-
if (!ctx) throw new Error('useTheme must be used within ThemeProvider');
46-
return ctx;
47-
}
43+
export { ThemeContext };

apps/web/src/lib/useTheme.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { useContext } from 'react';
2+
import { ThemeContext } from './theme';
3+
4+
export function useTheme() {
5+
const ctx = useContext(ThemeContext);
6+
if (!ctx) throw new Error('useTheme must be used within ThemeProvider');
7+
return ctx;
8+
}

apps/web/src/pages/CardPage.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default function CardPage() {
2424

2525
useEffect(() => {
2626
if (!id) return;
27-
setLoading(true);
2827
apiFetch<PublicCard>(`/api/u/card/${id}`)
2928
.then((data) => {
3029
setCard(data);

apps/web/src/pages/ProfilePage.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,12 @@ export default function ProfilePage() {
1818
const [profile, setProfile] = useState<PublicProfile | null>(null);
1919
const [error, setError] = useState<string | null>(null);
2020
const [loading, setLoading] = useState(true);
21-
const [mounted, setMounted] = useState(false);
21+
const [mounted] = useState(true);
2222
const [copyMessage, setCopyMessage] = useState('');
2323
const [copyStatus, setCopyStatus] = useState<'success' | 'error'>('success');
2424

25-
useEffect(() => {
26-
setMounted(true);
27-
}, []);
28-
2925
useEffect(() => {
3026
if (!username) return;
31-
setLoading(true);
3227
apiFetch<PublicProfile>(`/api/u/${username}?source=web`)
3328
.then((data) => {
3429
setProfile(data);

0 commit comments

Comments
 (0)