mirror of
https://github.com/navidrome/navidrome.git
synced 2026-05-03 06:51:16 +00:00
Compare commits
6 Commits
03b1a5952a
...
bbcbbd5118
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbcbbd5118 | ||
|
|
5cb851f2a8 | ||
|
|
5c18951e31 | ||
|
|
2b744c878e | ||
|
|
4548e75d49 | ||
|
|
841af03393 |
@ -1,7 +1,12 @@
|
|||||||
import ReactGA from 'react-ga'
|
import ReactGA from 'react-ga'
|
||||||
import { Provider } from 'react-redux'
|
import { Provider } from 'react-redux'
|
||||||
import { createHashHistory } from 'history'
|
import { createHashHistory } from 'history'
|
||||||
import { Admin as RAAdmin, Resource } from 'react-admin'
|
import {
|
||||||
|
Admin as RAAdmin,
|
||||||
|
Resource,
|
||||||
|
useSetLocale,
|
||||||
|
useRefresh,
|
||||||
|
} from 'react-admin'
|
||||||
import { HotKeys } from 'react-hotkeys'
|
import { HotKeys } from 'react-hotkeys'
|
||||||
import dataProvider from './dataProvider'
|
import dataProvider from './dataProvider'
|
||||||
import authProvider from './authProvider'
|
import authProvider from './authProvider'
|
||||||
@ -34,7 +39,7 @@ import {
|
|||||||
shareDialogReducer,
|
shareDialogReducer,
|
||||||
} from './reducers'
|
} from './reducers'
|
||||||
import createAdminStore from './store/createAdminStore'
|
import createAdminStore from './store/createAdminStore'
|
||||||
import { i18nProvider } from './i18n'
|
import { i18nProvider, retrieveTranslation } from './i18n'
|
||||||
import config, { shareInfo } from './config'
|
import config, { shareInfo } from './config'
|
||||||
import { keyMap } from './hotkeys'
|
import { keyMap } from './hotkeys'
|
||||||
import useChangeThemeColor from './useChangeThemeColor'
|
import useChangeThemeColor from './useChangeThemeColor'
|
||||||
@ -42,6 +47,7 @@ import SharePlayer from './share/SharePlayer'
|
|||||||
import { HTML5Backend } from 'react-dnd-html5-backend'
|
import { HTML5Backend } from 'react-dnd-html5-backend'
|
||||||
import { DndProvider } from 'react-dnd'
|
import { DndProvider } from 'react-dnd'
|
||||||
import missing from './missing/index.js'
|
import missing from './missing/index.js'
|
||||||
|
import { useEffect } from 'react'
|
||||||
|
|
||||||
const history = createHashHistory()
|
const history = createHashHistory()
|
||||||
|
|
||||||
@ -81,6 +87,24 @@ const App = () => (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const Admin = (props) => {
|
const Admin = (props) => {
|
||||||
|
const setLocale = useSetLocale()
|
||||||
|
const refresh = useRefresh()
|
||||||
|
useEffect(() => {
|
||||||
|
if (config.defaultLanguage !== '' && !localStorage.getItem('locale')) {
|
||||||
|
retrieveTranslation(config.defaultLanguage)
|
||||||
|
.then(() => setLocale(config.defaultLanguage))
|
||||||
|
.then(() => {
|
||||||
|
localStorage.setItem('locale', config.defaultLanguage)
|
||||||
|
refresh(true)
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.error(
|
||||||
|
'Cannot load language "' + config.defaultLanguage + '": ' + e,
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, [setLocale, refresh])
|
||||||
useChangeThemeColor()
|
useChangeThemeColor()
|
||||||
/* eslint-disable react/jsx-key */
|
/* eslint-disable react/jsx-key */
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import React, { useState, useCallback, useEffect } from 'react'
|
import React, { useState, useCallback } from 'react'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import { Field, Form } from 'react-final-form'
|
import { Field, Form } from 'react-final-form'
|
||||||
import { useDispatch } from 'react-redux'
|
import { useDispatch } from 'react-redux'
|
||||||
@ -13,8 +13,6 @@ import {
|
|||||||
createMuiTheme,
|
createMuiTheme,
|
||||||
useLogin,
|
useLogin,
|
||||||
useNotify,
|
useNotify,
|
||||||
useRefresh,
|
|
||||||
useSetLocale,
|
|
||||||
useTranslate,
|
useTranslate,
|
||||||
useVersion,
|
useVersion,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
@ -24,7 +22,6 @@ import Notification from './Notification'
|
|||||||
import useCurrentTheme from '../themes/useCurrentTheme'
|
import useCurrentTheme from '../themes/useCurrentTheme'
|
||||||
import config from '../config'
|
import config from '../config'
|
||||||
import { clearQueue } from '../actions'
|
import { clearQueue } from '../actions'
|
||||||
import { retrieveTranslation } from '../i18n'
|
|
||||||
import { INSIGHTS_DOC_URL } from '../consts.js'
|
import { INSIGHTS_DOC_URL } from '../consts.js'
|
||||||
|
|
||||||
const useStyles = makeStyles(
|
const useStyles = makeStyles(
|
||||||
@ -400,27 +397,8 @@ Login.propTypes = {
|
|||||||
// the right theme
|
// the right theme
|
||||||
const LoginWithTheme = (props) => {
|
const LoginWithTheme = (props) => {
|
||||||
const theme = useCurrentTheme()
|
const theme = useCurrentTheme()
|
||||||
const setLocale = useSetLocale()
|
|
||||||
const refresh = useRefresh()
|
|
||||||
const version = useVersion()
|
const version = useVersion()
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (config.defaultLanguage !== '' && !localStorage.getItem('locale')) {
|
|
||||||
retrieveTranslation(config.defaultLanguage)
|
|
||||||
.then(() => {
|
|
||||||
setLocale(config.defaultLanguage).then(() => {
|
|
||||||
localStorage.setItem('locale', config.defaultLanguage)
|
|
||||||
})
|
|
||||||
refresh(true)
|
|
||||||
})
|
|
||||||
.catch((e) => {
|
|
||||||
throw new Error(
|
|
||||||
'Cannot load language "' + config.defaultLanguage + '": ' + e,
|
|
||||||
)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}, [refresh, setLocale])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider theme={createMuiTheme(theme)}>
|
<ThemeProvider theme={createMuiTheme(theme)}>
|
||||||
<Login key={version} {...props} />
|
<Login key={version} {...props} />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user