From 837e0e904c40f7b87561c34ca3f49edd5d8d1c52 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Thu, 28 Sep 2023 18:03:43 +0200 Subject: feat(components): replace icons with a generic Icon component Sizes are also predefined and can be set using the `size` prop, so the consumers should no longer adjust the size in CSS. --- .../organisms/forms/theme-toggle/theme-toggle.tsx | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/components/organisms/forms/theme-toggle/theme-toggle.tsx') diff --git a/src/components/organisms/forms/theme-toggle/theme-toggle.tsx b/src/components/organisms/forms/theme-toggle/theme-toggle.tsx index da303d3..6026e1c 100644 --- a/src/components/organisms/forms/theme-toggle/theme-toggle.tsx +++ b/src/components/organisms/forms/theme-toggle/theme-toggle.tsx @@ -1,8 +1,12 @@ import { useTheme } from 'next-themes'; -import { ChangeEvent, FC } from 'react'; +import { useCallback, type ChangeEvent, type FC } from 'react'; import { useIntl } from 'react-intl'; -import { Legend, Moon, Sun } from '../../../atoms'; -import { Switch, SwitchOption, SwitchProps } from '../../../molecules'; +import { Icon, Legend } from '../../../atoms'; +import { + Switch, + type SwitchOption, + type SwitchProps, +} from '../../../molecules'; export type ThemeToggleProps = Omit< SwitchProps, @@ -19,9 +23,12 @@ export const ThemeToggle: FC = (props) => { const { resolvedTheme, setTheme } = useTheme(); const isDarkTheme = resolvedTheme === 'dark'; - const updateTheme = (e: ChangeEvent) => { - setTheme(e.target.value === 'light' ? 'light' : 'dark'); - }; + const updateTheme = useCallback( + (e: ChangeEvent) => { + setTheme(e.target.value === 'light' ? 'light' : 'dark'); + }, + [setTheme] + ); const themeLabel = intl.formatMessage({ defaultMessage: 'Theme:', @@ -45,7 +52,7 @@ export const ThemeToggle: FC = (props) => { label: ( <> {lightThemeLabel} - + ), value: 'light', @@ -55,7 +62,7 @@ export const ThemeToggle: FC = (props) => { label: ( <> {darkThemeLabel} - + ), value: 'dark', -- cgit v1.2.3