加入loading页面
This commit is contained in:
tangly1024
2021-12-13 14:40:47 +08:00
parent 3f79b18878
commit 0f46dc518c
4 changed files with 34 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
import lang from './lang'
import { useContext, createContext, useState, useEffect } from 'react'
import cookie from 'react-cookies'
import Router from 'next/router'
const GlobalContext = createContext()
@@ -13,6 +14,15 @@ const GlobalContext = createContext()
export function GlobalContextProvider ({ children }) {
const [locale, changeLocale] = useState(generateLocaleDict('en-US'))
const [theme, changeTheme] = useState(loadUserThemeFromCookies())
const [onLoading, changeLoadingState] = useState(false)
Router.events.on('routeChangeStart', (...args) => {
changeLoadingState(true)
})
Router.events.on('routeChangeComplete', (...args) => {
changeLoadingState(false)
})
// 服务端静态渲染在渲染hooks后根据前端变量做初始化工作
useEffect(() => {
initTheme(theme, changeTheme)
@@ -20,7 +30,9 @@ export function GlobalContextProvider ({ children }) {
})
return (
<GlobalContext.Provider value={{ locale, theme, changeTheme }}>{children}</GlobalContext.Provider>
<GlobalContext.Provider value={{ onLoading, locale, theme, changeTheme }}>
{children}
</GlobalContext.Provider>
)
}