You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
1020 B
26 lines
1020 B
import * as React from 'react'
|
|
import { QueryClientProvider } from '@tanstack/react-query'
|
|
import { BrowserRouter } from 'react-router-dom'
|
|
import { DirectionProvider } from '@radix-ui/react-direction'
|
|
import { queryClient } from '@/lib/query-client'
|
|
|
|
import { TooltipProvider } from '@/components/ui/tooltip'
|
|
import { ToastContainer } from '@/components/ui/toast-container'
|
|
import { useLanguageStore } from '@/i18n'
|
|
|
|
/* پروایدرهای سراسری: React Query + RTL/LTR چندزبانه + Tooltips + Router + Toasts */
|
|
export default function Providers({ children }: { children: React.ReactNode }) {
|
|
const language = useLanguageStore((s) => s.language)
|
|
const dir = language === 'en' ? 'ltr' : 'rtl'
|
|
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
<DirectionProvider dir={dir}>
|
|
<TooltipProvider delayDuration={200}>
|
|
<BrowserRouter>{children}</BrowserRouter>
|
|
<ToastContainer />
|
|
</TooltipProvider>
|
|
</DirectionProvider>
|
|
</QueryClientProvider>
|
|
)
|
|
}
|