57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
'use client'
|
|
|
|
import { PropsWithChildren } from 'react'
|
|
|
|
import { Toaster } from 'react-hot-toast'
|
|
|
|
import EventListener from '@/containers/Providers/EventListener'
|
|
import JotaiWrapper from '@/containers/Providers/Jotai'
|
|
|
|
import ThemeWrapper from '@/containers/Providers/Theme'
|
|
|
|
import { CoreConfigurator } from './CoreConfigurator'
|
|
import DataLoader from './DataLoader'
|
|
|
|
import DeepLinkListener from './DeepLinkListener'
|
|
import KeyListener from './KeyListener'
|
|
import { QuickAskConfigurator } from './QuickAskConfigurator'
|
|
import Responsive from './Responsive'
|
|
|
|
import SWRConfigProvider from './SWRConfigProvider'
|
|
import SettingsHandler from './SettingsHandler'
|
|
|
|
const Providers = ({ children }: PropsWithChildren) => {
|
|
const isQuickAsk =
|
|
typeof window !== 'undefined' && window.electronAPI?.isQuickAsk()
|
|
return (
|
|
<SWRConfigProvider>
|
|
<ThemeWrapper>
|
|
<JotaiWrapper>
|
|
{isQuickAsk && (
|
|
<>
|
|
<QuickAskConfigurator> {children} </QuickAskConfigurator>
|
|
</>
|
|
)}
|
|
{!isQuickAsk && (
|
|
<CoreConfigurator>
|
|
<>
|
|
<Responsive />
|
|
<KeyListener />
|
|
<EventListener />
|
|
<DataLoader />
|
|
<SettingsHandler />
|
|
<DeepLinkListener />
|
|
<Toaster />
|
|
<div className={'draggable-bar h-[32px]'} />
|
|
{children}
|
|
</>
|
|
</CoreConfigurator>
|
|
)}
|
|
</JotaiWrapper>
|
|
</ThemeWrapper>
|
|
</SWRConfigProvider>
|
|
)
|
|
}
|
|
|
|
export default Providers
|