2024-06-25 11:25:20 +00:00
|
|
|
import { Meta, MetaProvider } from '@solidjs/meta'
|
2024-06-24 17:50:27 +00:00
|
|
|
import { Router } from '@solidjs/router'
|
|
|
|
import { FileRoutes } from '@solidjs/start/router'
|
|
|
|
import { type JSX, Suspense } from 'solid-js'
|
|
|
|
|
|
|
|
import { Loading } from './components/_shared/Loading'
|
|
|
|
import { PageLayout } from './components/_shared/PageLayout'
|
2024-06-25 11:25:20 +00:00
|
|
|
import { EditorProvider } from './context/editor'
|
2024-06-24 17:50:27 +00:00
|
|
|
import { FeedProvider } from './context/feed'
|
|
|
|
import { GraphQLClientProvider } from './context/graphql'
|
|
|
|
import { LocalizeProvider, useLocalize } from './context/localize'
|
|
|
|
import { SessionProvider } from './context/session'
|
|
|
|
import { TopicsProvider } from './context/topics'
|
|
|
|
import { UIProvider } from './context/ui' // snackbar included
|
|
|
|
import '~/styles/app.scss'
|
|
|
|
|
|
|
|
export const Providers = (props: { children?: JSX.Element }) => {
|
|
|
|
const { t } = useLocalize()
|
|
|
|
return (
|
|
|
|
<LocalizeProvider>
|
|
|
|
<SessionProvider onStateChangeCallback={console.info}>
|
|
|
|
<GraphQLClientProvider>
|
|
|
|
<TopicsProvider>
|
|
|
|
<FeedProvider>
|
|
|
|
<MetaProvider>
|
2024-06-25 11:25:20 +00:00
|
|
|
<Meta name="viewport" content="width=device-width, initial-scale=1" />
|
2024-06-24 17:50:27 +00:00
|
|
|
<UIProvider>
|
2024-06-25 11:25:20 +00:00
|
|
|
<EditorProvider>
|
|
|
|
<Suspense fallback={<Loading />}>
|
|
|
|
<PageLayout title={t('Discours')}>{props.children}</PageLayout>
|
|
|
|
</Suspense>
|
|
|
|
</EditorProvider>
|
2024-06-24 17:50:27 +00:00
|
|
|
</UIProvider>
|
|
|
|
</MetaProvider>
|
|
|
|
</FeedProvider>
|
|
|
|
</TopicsProvider>
|
|
|
|
</GraphQLClientProvider>
|
|
|
|
</SessionProvider>
|
|
|
|
</LocalizeProvider>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const App = () => (
|
|
|
|
<Router root={Providers}>
|
|
|
|
<FileRoutes />
|
|
|
|
</Router>
|
|
|
|
)
|
|
|
|
|
|
|
|
export default App
|