feat: add sonner for notifications and update theme handling in Toaster component
Some checks failed
Frontend CI / lint (push) Failing after 5m7s
Frontend CI / build (push) Has been skipped

This commit is contained in:
JSC
2025-07-05 08:37:16 +02:00
parent 3f0fc13a12
commit 06e0489923
6 changed files with 37 additions and 4 deletions

View File

@@ -6,17 +6,19 @@ import { SocketProvider } from '@/contexts/SocketContext'
import { AccountPage } from '@/pages/AccountPage'
import { ActivityPage } from '@/pages/ActivityPage'
import { AdminUsersPage } from '@/pages/AdminUsersPage'
import AdminSoundsPage from '@/pages/AdminSoundsPage'
import { AdminSoundsPage } from '@/pages/AdminSoundsPage'
import { DashboardPage } from '@/pages/DashboardPage'
import { LoginPage } from '@/pages/LoginPage'
import { RegisterPage } from '@/pages/RegisterPage'
import SoundboardPage from '@/pages/SoundboardPage'
import { SoundboardPage } from '@/pages/SoundboardPage'
import { Navigate, Route, BrowserRouter as Router, Routes } from 'react-router'
import { ThemeProvider } from './components/ThemeProvider'
import { Toaster } from 'sonner'
function App() {
return (
<ThemeProvider defaultTheme="dark" storageKey="theme">
<Toaster />
<AuthProvider>
<SocketProvider>
<Router>

View File

@@ -0,0 +1,23 @@
import { useTheme } from "next-themes"
import { Toaster as Sonner, ToasterProps } from "sonner"
const Toaster = ({ ...props }: ToasterProps) => {
const { theme = "system" } = useTheme()
return (
<Sonner
theme={theme as ToasterProps["theme"]}
className="toaster group"
style={
{
"--normal-bg": "var(--popover)",
"--normal-text": "var(--popover-foreground)",
"--normal-border": "var(--border)",
} as React.CSSProperties
}
{...props}
/>
)
}
export { Toaster }

View File

@@ -46,7 +46,7 @@ interface NormalizationStats {
size_difference: number;
}
export default function AdminSoundsPage() {
export function AdminSoundsPage() {
const [sounds, setSounds] = useState<Sound[]>([]);
const [scanStats, setScanStats] = useState<ScanStats | null>(null);
const [normalizationStats, setNormalizationStats] = useState<NormalizationStats | null>(null);

View File

@@ -68,7 +68,7 @@ const SoundCard: React.FC<SoundCardProps> = ({ sound, onPlay, isPlaying }) => {
);
};
export default function SoundboardPage() {
export function SoundboardPage() {
const [sounds, setSounds] = useState<Sound[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);