1
0
Fork 0
blog/src/components/molecules/ThemeSwitch.tsx

34 lines
1016 B
TypeScript
Raw Normal View History

2022-11-19 16:09:13 +01:00
import React, { ReactElement } from 'react'
2021-03-13 04:11:44 +01:00
import useDarkMode from '../../hooks/useDarkMode'
2023-01-29 22:58:19 +01:00
import Icon from '../atoms/Icon'
import * as styles from './ThemeSwitch.module.css'
2019-10-03 19:18:01 +02:00
2020-05-22 14:38:19 +02:00
export default function ThemeSwitch(): ReactElement {
2022-11-19 16:09:13 +01:00
const { isDarkMode, setIsDarkMode } = useDarkMode()
2019-11-09 19:20:39 +01:00
2019-10-03 19:18:01 +02:00
return (
2022-11-19 17:31:07 +01:00
<div className={styles.themeSwitch} title="Toggle Dark Mode">
2022-11-19 16:09:13 +01:00
<label
htmlFor="toggle"
className={styles.checkbox}
onClick={() => setIsDarkMode(!isDarkMode)}
onKeyPress={() => setIsDarkMode(!isDarkMode)}
role="presentation"
>
<span className={styles.label}>Toggle Dark Mode</span>
<input
onChange={() => setIsDarkMode(!isDarkMode)}
type="checkbox"
name="toggle"
value="toggle"
aria-describedby="toggle"
checked={isDarkMode}
/>
<div aria-live="assertive">
{isDarkMode ? <Icon name="Sun" /> : <Icon name="Moon" />}
</div>
</label>
2022-11-19 17:31:07 +01:00
</div>
2019-10-03 19:18:01 +02:00
)
}