aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-24 19:35:12 +0200
committerGitHub <noreply@github.com>2022-05-24 19:35:12 +0200
commitc85ab5ad43ccf52881ee224672c41ec30021cf48 (patch)
tree8058808d9bfca19383f120c46b34d99ff2f89f63 /src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx
parent52404177c07a2aab7fc894362fb3060dff2431a0 (diff)
parent11b9de44a4b2f305a6a484187805e429b2767118 (diff)
refactor: use storybook and atomic design (#16)
BREAKING CHANGE: rewrite most of the Typescript types, so the content format (the meta in particular) needs to be updated.
Diffstat (limited to 'src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx')
-rw-r--r--src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx50
1 files changed, 0 insertions, 50 deletions
diff --git a/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx b/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx
deleted file mode 100644
index 20ad267..0000000
--- a/src/components/Settings/PrismThemeToggle/PrismThemeToggle.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { Toggle } from '@components/FormElements';
-import { MoonIcon, SunIcon } from '@components/Icons';
-import Spinner from '@components/Spinner/Spinner';
-import { usePrismTheme } from '@utils/providers/prism-theme';
-import { useEffect, useState } from 'react';
-import { useIntl } from 'react-intl';
-
-const PrismThemeToggle = () => {
- const intl = useIntl();
- const [isMounted, setIsMounted] = useState<boolean>(false);
-
- useEffect(() => {
- setIsMounted(true);
- }, []);
-
- const { theme, setTheme, resolvedTheme } = usePrismTheme();
- const [isDarkTheme, setIsDarkTheme] = useState<boolean>(theme === 'dark');
-
- useEffect(() => {
- if (theme === 'system') {
- setIsDarkTheme(resolvedTheme === 'dark');
- } else {
- setIsDarkTheme(theme === 'dark');
- }
- }, [theme, resolvedTheme]);
-
- const updateTheme = () => {
- isDarkTheme ? setTheme('light') : setTheme('dark');
- setIsDarkTheme(!isDarkTheme);
- };
-
- if (!isMounted) return <Spinner />;
-
- return (
- <Toggle
- id="prism-theme"
- label={intl.formatMessage({
- defaultMessage: 'Code blocks:',
- description: 'PrismThemeToggle: toggle label',
- id: 'w0UfY0',
- })}
- leftChoice={<SunIcon />}
- rightChoice={<MoonIcon />}
- value={isDarkTheme}
- changeHandler={updateTheme}
- />
- );
-};
-
-export default PrismThemeToggle;