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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user