diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-01-17 22:26:16 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-01-17 22:54:17 +0100 |
| commit | a6233863da4203bec781e817963ac3733279cab5 (patch) | |
| tree | b075753c4336b737d41c178451551c40c1016951 /src/components/ThemeToggle/ThemeToggle.tsx | |
| parent | 68138f0dcd8b3db2c23b31a20508726f245b5ba5 (diff) | |
refactor(settings): make toggle reusable
Toggle will be used for others settings so I extract the functionnality
from ThemeToggle.
Diffstat (limited to 'src/components/ThemeToggle/ThemeToggle.tsx')
| -rw-r--r-- | src/components/ThemeToggle/ThemeToggle.tsx | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/components/ThemeToggle/ThemeToggle.tsx b/src/components/ThemeToggle/ThemeToggle.tsx deleted file mode 100644 index c44f6df..0000000 --- a/src/components/ThemeToggle/ThemeToggle.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Form } from '@components/Form'; -import { MoonIcon, SunIcon } from '@components/Icons'; -import Spinner from '@components/Spinner/Spinner'; -import { t } from '@lingui/macro'; -import { useTheme } from 'next-themes'; -import { FormEvent, useEffect, useState } from 'react'; -import styles from './ThemeToggle.module.scss'; - -const ThemeToggle = () => { - const [isMounted, setIsMounted] = useState<boolean>(false); - const { resolvedTheme, setTheme } = useTheme(); - - useEffect(() => { - setIsMounted(true); - }, []); - - const onSubmit = (e: FormEvent) => { - e.preventDefault(); - }; - - if (!isMounted) return <Spinner />; - - const isDarkTheme = resolvedTheme === 'dark'; - - return ( - <Form modifier="theme" submitHandler={onSubmit}> - <input - className={styles.checkbox} - type="checkbox" - id="dark-theme" - name="dark-theme" - checked={isDarkTheme} - onChange={() => setTheme(isDarkTheme ? 'light' : 'dark')} - /> - <label htmlFor="dark-theme" className={styles.label}> - <span className={styles.title}>{t`Theme:`}</span> - <SunIcon /> - <span className={styles.toggle}></span> - <MoonIcon /> - </label> - </Form> - ); -}; - -export default ThemeToggle; |
