35 lines
1003 B
TypeScript
35 lines
1003 B
TypeScript
/*
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
import React from 'react';
|
|
import { AppThemes } from '@/lib/ui/AppThemes.ts';
|
|
|
|
export enum ThemeMode {
|
|
SYSTEM = 'system',
|
|
DARK = 'dark',
|
|
LIGHT = 'light',
|
|
}
|
|
|
|
type ContextType = {
|
|
appTheme: AppThemes;
|
|
setAppTheme: React.Dispatch<React.SetStateAction<AppThemes>>;
|
|
themeMode: ThemeMode;
|
|
setThemeMode: React.Dispatch<React.SetStateAction<ThemeMode>>;
|
|
pureBlackMode: boolean;
|
|
setPureBlackMode: React.Dispatch<React.SetStateAction<boolean>>;
|
|
};
|
|
|
|
export const ThemeModeContext = React.createContext<ContextType>({
|
|
appTheme: 'default',
|
|
setAppTheme: (): void => {},
|
|
themeMode: ThemeMode.SYSTEM,
|
|
setThemeMode: (): void => {},
|
|
pureBlackMode: false,
|
|
setPureBlackMode: (): void => {},
|
|
});
|