fix: workaround to force check for initial setup
This commit is contained in:
+45
-28
@@ -1,5 +1,5 @@
|
|||||||
import React from 'react'
|
import React, { useState } from 'react'
|
||||||
import { Admin, Resource, resolveBrowserLocale } from 'react-admin'
|
import { Admin, resolveBrowserLocale, Resource } from 'react-admin'
|
||||||
import dataProvider from './dataProvider'
|
import dataProvider from './dataProvider'
|
||||||
import authProvider from './authProvider'
|
import authProvider from './authProvider'
|
||||||
import polyglotI18nProvider from 'ra-i18n-polyglot'
|
import polyglotI18nProvider from 'ra-i18n-polyglot'
|
||||||
@@ -20,30 +20,47 @@ const i18nProvider = polyglotI18nProvider(
|
|||||||
)
|
)
|
||||||
|
|
||||||
const App = () => (
|
const App = () => (
|
||||||
<>
|
<Admin
|
||||||
<div>
|
theme={theme}
|
||||||
<Admin
|
customReducers={{ queue: playQueueReducer }}
|
||||||
theme={theme}
|
dataProvider={dataProvider}
|
||||||
customReducers={{ queue: playQueueReducer }}
|
authProvider={authProvider}
|
||||||
dataProvider={dataProvider}
|
i18nProvider={i18nProvider}
|
||||||
authProvider={authProvider}
|
layout={Layout}
|
||||||
i18nProvider={i18nProvider}
|
loginPage={Login}
|
||||||
layout={Layout}
|
>
|
||||||
loginPage={Login}
|
{(permissions) => [
|
||||||
>
|
<Resource name="artist" {...artist} options={{ subMenu: 'library' }} />,
|
||||||
{(permissions) => [
|
<Resource name="album" {...album} options={{ subMenu: 'library' }} />,
|
||||||
<Resource
|
<Resource name="song" {...song} options={{ subMenu: 'library' }} />,
|
||||||
name="artist"
|
permissions === 'admin' ? <Resource name="user" {...user} /> : null,
|
||||||
{...artist}
|
<Player />
|
||||||
options={{ subMenu: 'library' }}
|
]}
|
||||||
/>,
|
</Admin>
|
||||||
<Resource name="album" {...album} options={{ subMenu: 'library' }} />,
|
|
||||||
<Resource name="song" {...song} options={{ subMenu: 'library' }} />,
|
|
||||||
permissions === 'admin' ? <Resource name="user" {...user} /> : null,
|
|
||||||
<Player />
|
|
||||||
]}
|
|
||||||
</Admin>
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
)
|
)
|
||||||
export default App
|
|
||||||
|
// TODO: This is a complicated way to force a first check for initial setup. A better way would be to send this info
|
||||||
|
// set in the `window` object in the index.html
|
||||||
|
const AppWrapper = () => {
|
||||||
|
const [checked, setChecked] = useState(false)
|
||||||
|
|
||||||
|
if (!checked) {
|
||||||
|
dataProvider
|
||||||
|
.getOne('keepalive', { id: new Date().getTime() })
|
||||||
|
.then(() => setChecked(true))
|
||||||
|
.catch((err) => {
|
||||||
|
authProvider
|
||||||
|
.checkError(err)
|
||||||
|
.then(() => {
|
||||||
|
setChecked(true)
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
setChecked(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return <App />
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AppWrapper
|
||||||
|
|||||||
Reference in New Issue
Block a user