Files
shop-server/client/src/app/providers/AppProviders.tsx
T
@kirill.komarov 55480d4aa5 init project
2026-04-28 11:02:08 +05:00

49 lines
1.2 KiB
TypeScript

import { type PropsWithChildren, useMemo } from 'react'
import CssBaseline from '@mui/material/CssBaseline'
import { ThemeProvider, createTheme } from '@mui/material/styles'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
export function AppProviders({ children }: PropsWithChildren) {
const queryClient = useMemo(
() =>
new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
retry: 1,
refetchOnWindowFocus: false,
},
},
}),
[],
)
const theme = useMemo(
() =>
createTheme({
palette: {
mode: 'light',
primary: { main: '#6d4c41' },
secondary: { main: '#8d6e63' },
background: { default: '#faf8f5', paper: '#ffffff' },
},
shape: { borderRadius: 12 },
typography: {
fontFamily: '"Segoe UI", system-ui, sans-serif',
h4: { fontWeight: 700 },
h5: { fontWeight: 600 },
},
}),
[],
)
return (
<QueryClientProvider client={queryClient}>
<ThemeProvider theme={theme}>
<CssBaseline />
{children}
</ThemeProvider>
</QueryClientProvider>
)
}