aboutsummaryrefslogtreecommitdiff
path: root/vnext/src/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'vnext/src/index.js')
-rw-r--r--vnext/src/index.js49
1 files changed, 30 insertions, 19 deletions
diff --git a/vnext/src/index.js b/vnext/src/index.js
index 77f152af..7959186f 100644
--- a/vnext/src/index.js
+++ b/vnext/src/index.js
@@ -15,27 +15,38 @@ import { CookiesProvider } from 'react-cookie'
import { HelmetProvider } from 'react-helmet-async'
import { VisitorProvider } from './ui/VisitorContext'
+import { me } from './api'
const Juick = lazy(() => import('./App'))
const props = window.__PROPS__ ? JSON.parse(decodeURIComponent(escape(atob(window.__PROPS__)))) : {}
-const JuickApp = () => (
- <StrictMode>
- <HelmetProvider>
- <VisitorProvider>
- <CookiesProvider>
- <BrowserRouter>
- <Juick {...props} />
- </BrowserRouter>
- </CookiesProvider>
- </VisitorProvider>
- </HelmetProvider>
- </StrictMode>
-)
-
-let root = document.getElementById('app')
-if (window.__PROPS__) {
- hydrateRoot(root, <JuickApp />)
-} else {
- createRoot(root).render(<JuickApp />)
+function ready(fn) {
+ if (document.readyState != 'loading') {
+ fn()
+ } else {
+ document.addEventListener('DOMContentLoaded', fn)
+ }
}
+
+ready(async () => {
+ let visitor = await me()
+ const JuickApp = () => (
+ <StrictMode>
+ <HelmetProvider>
+ <VisitorProvider auth={visitor}>
+ <CookiesProvider>
+ <BrowserRouter>
+ <Juick {...props} />
+ </BrowserRouter>
+ </CookiesProvider>
+ </VisitorProvider>
+ </HelmetProvider>
+ </StrictMode>
+ )
+ let root = document.getElementById('app')
+ if (window.__PROPS__) {
+ hydrateRoot(root, <JuickApp />)
+ } else {
+ createRoot(root).render(<JuickApp />)
+ }
+})