mirror of
https://github.com/He4eT/elseifplayer.git
synced 2026-05-05 01:17:22 +00:00
Store the UI theme in the LocalStorage
This commit is contained in:
parent
e09705cf23
commit
7f143925ac
6 changed files with 28 additions and 25 deletions
|
|
@ -16,19 +16,28 @@ const themes = [
|
|||
'wasp'
|
||||
]
|
||||
|
||||
const LS_THEME_KEY = 'ifplayer/theme'
|
||||
const DEFAULT_THEME = themes[0]
|
||||
|
||||
const getSavedTheme = () => {
|
||||
const savedTheme = localStorage.getItem(LS_THEME_KEY)
|
||||
return savedTheme || DEFAULT_THEME
|
||||
}
|
||||
|
||||
const assertTheme = theme =>
|
||||
themes.includes(theme)
|
||||
? theme
|
||||
: DEFAULT_THEME
|
||||
: getSavedTheme()
|
||||
|
||||
export const useThemeEngine = (initialTheme = DEFAULT_THEME) => {
|
||||
export const useThemeEngine = (initialTheme = getSavedTheme()) => {
|
||||
const [currentTheme, setCurrentTheme] =
|
||||
useState(initialTheme)
|
||||
|
||||
const setTheme = theme => {
|
||||
setCurrentTheme(assertTheme(theme))
|
||||
const newTheme = assertTheme(theme)
|
||||
|
||||
setCurrentTheme(newTheme)
|
||||
localStorage.setItem(LS_THEME_KEY, newTheme)
|
||||
}
|
||||
|
||||
return { currentTheme, setTheme, themes }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue