2021-03-26 04:17:02 +04:30
|
|
|
/*
|
|
|
|
|
* Copyright (C) Contributors to the Suwayomi project
|
|
|
|
|
*
|
|
|
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
2021-01-26 23:32:12 +03:30
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
2023-05-18 13:17:41 +02:00
|
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
|
|
|
*/
|
2021-01-26 23:32:12 +03:30
|
|
|
|
2021-01-23 01:20:16 +03:30
|
|
|
import React from 'react';
|
2024-09-05 02:35:08 +02:00
|
|
|
import { AppThemes } from '@/lib/ui/AppThemes.ts';
|
2021-01-23 01:20:16 +03:30
|
|
|
|
2024-09-04 23:46:04 +02:00
|
|
|
export enum ThemeMode {
|
|
|
|
|
SYSTEM = 'system',
|
|
|
|
|
DARK = 'dark',
|
|
|
|
|
LIGHT = 'light',
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-23 01:20:16 +03:30
|
|
|
type ContextType = {
|
2024-09-05 02:35:08 +02:00
|
|
|
appTheme: AppThemes;
|
|
|
|
|
setAppTheme: React.Dispatch<React.SetStateAction<AppThemes>>;
|
2024-09-04 23:46:04 +02:00
|
|
|
themeMode: ThemeMode;
|
|
|
|
|
setThemeMode: React.Dispatch<React.SetStateAction<ThemeMode>>;
|
2024-09-05 00:08:23 +02:00
|
|
|
pureBlackMode: boolean;
|
|
|
|
|
setPureBlackMode: React.Dispatch<React.SetStateAction<boolean>>;
|
2021-01-23 01:20:16 +03:30
|
|
|
};
|
|
|
|
|
|
2024-09-04 23:46:04 +02:00
|
|
|
export const ThemeModeContext = React.createContext<ContextType>({
|
2024-09-05 02:35:08 +02:00
|
|
|
appTheme: 'default',
|
|
|
|
|
setAppTheme: (): void => {},
|
2024-09-04 23:46:04 +02:00
|
|
|
themeMode: ThemeMode.SYSTEM,
|
|
|
|
|
setThemeMode: (): void => {},
|
2024-09-05 00:08:23 +02:00
|
|
|
pureBlackMode: false,
|
|
|
|
|
setPureBlackMode: (): void => {},
|
2021-01-23 01:20:16 +03:30
|
|
|
});
|