feat: integrate ToastProvider and enhance theme management

- Added `ToastProvider` to `RootLayout` for improved user feedback on theme changes.
- Updated `ThemeProvider` to display toast notifications with theme names and icons upon theme changes.
- Refactored theme-related imports to streamline code and improve maintainability.
- Simplified background cycling logic in `useBackgroundCycle` to utilize centralized background definitions.
- Cleaned up unused background definitions in `BackgroundContext` for better clarity and performance.
This commit is contained in:
Julien Froidefond
2025-10-02 17:24:37 +02:00
parent 99377ee38d
commit 10c1f811ce
10 changed files with 405 additions and 189 deletions

View File

@@ -9,6 +9,7 @@ import { KeyboardShortcutsProvider } from "@/contexts/KeyboardShortcutsContext";
import { userPreferencesService } from "@/services/core/user-preferences";
import { KeyboardShortcuts } from "@/components/KeyboardShortcuts";
import { GlobalKeyboardShortcuts } from "@/components/GlobalKeyboardShortcuts";
import { ToastProvider } from "@/components/ui/Toast";
import { AuthProvider } from "../components/AuthProvider";
import { getServerSession } from 'next-auth';
import { authOptions } from '@/lib/auth';
@@ -48,22 +49,24 @@ export default async function RootLayout({
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
>
<AuthProvider>
<ThemeProvider
initialTheme={initialPreferences?.viewPreferences.theme || 'light'}
userPreferredTheme={initialPreferences?.viewPreferences.theme === 'light' ? 'dark' : initialPreferences?.viewPreferences.theme || 'light'}
>
<KeyboardShortcutsProvider>
<KeyboardShortcuts />
<JiraConfigProvider config={initialPreferences?.jiraConfig || { enabled: false }}>
<UserPreferencesProvider initialPreferences={initialPreferences}>
<GlobalKeyboardShortcuts />
<BackgroundProvider>
{children}
</BackgroundProvider>
</UserPreferencesProvider>
</JiraConfigProvider>
</KeyboardShortcutsProvider>
</ThemeProvider>
<ToastProvider>
<ThemeProvider
initialTheme={initialPreferences?.viewPreferences.theme || 'light'}
userPreferredTheme={initialPreferences?.viewPreferences.theme === 'light' ? 'dark' : initialPreferences?.viewPreferences.theme || 'light'}
>
<KeyboardShortcutsProvider>
<KeyboardShortcuts />
<JiraConfigProvider config={initialPreferences?.jiraConfig || { enabled: false }}>
<UserPreferencesProvider initialPreferences={initialPreferences}>
<GlobalKeyboardShortcuts />
<BackgroundProvider>
{children}
</BackgroundProvider>
</UserPreferencesProvider>
</JiraConfigProvider>
</KeyboardShortcutsProvider>
</ThemeProvider>
</ToastProvider>
</AuthProvider>
</body>
</html>