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'
|
2024-07-12 11:19:58 +00:00
|
|
|
import { AuthorsProvider } from './context/authors'
|
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'
|
2024-06-28 10:48:11 +00:00
|
|
|
import { LocalizeProvider } from './context/localize'
|
2024-06-24 17:50:27 +00:00
|
|
|
import { SessionProvider } from './context/session'
|
|
|
|
import { TopicsProvider } from './context/topics'
|
|
|
|
import { UIProvider } from './context/ui' // snackbar included
|
|
|
|
import '~/styles/app.scss'
|
2024-09-15 16:41:02 +00:00
|
|
|
import { AuthToken } from '@authorizerdev/authorizer-js'
|
2024-06-24 17:50:27 +00:00
|
|
|
|
|
|
|
export const Providers = (props: { children?: JSX.Element }) => {
|
2024-09-15 16:41:02 +00:00
|
|
|
const sessionStateChanged = (payload: AuthToken) => {
|
|
|
|
console.debug(payload)
|
|
|
|
// TODO: maybe load subs here
|
|
|
|
}
|
2024-06-24 17:50:27 +00:00
|
|
|
return (
|
|
|
|
<LocalizeProvider>
|
2024-09-15 16:41:02 +00:00
|
|
|
<SessionProvider onStateChangeCallback={sessionStateChanged}>
|
2024-07-30 19:06:17 +00:00
|
|
|
<TopicsProvider>
|
|
|
|
<FeedProvider>
|
|
|
|
<MetaProvider>
|
|
|
|
<Meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
<UIProvider>
|
|
|
|
<EditorProvider>
|
|
|
|
<AuthorsProvider>
|
|
|
|
<Suspense fallback={<Loading />}>{props.children}</Suspense>
|
|
|
|
</AuthorsProvider>
|
|
|
|
</EditorProvider>
|
|
|
|
</UIProvider>
|
|
|
|
</MetaProvider>
|
|
|
|
</FeedProvider>
|
|
|
|
</TopicsProvider>
|
2024-06-24 17:50:27 +00:00
|
|
|
</SessionProvider>
|
|
|
|
</LocalizeProvider>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export const App = () => (
|
|
|
|
<Router root={Providers}>
|
|
|
|
<FileRoutes />
|
|
|
|
</Router>
|
|
|
|
)
|
|
|
|
|
|
|
|
export default App
|