2025-05-20 19:23:36 -07:00
|
|
|
import { useEffect } from 'react';
|
2023-07-23 12:23:18 +00:00
|
|
|
import { RiMoonLine, RiSunLine } from 'react-icons/ri';
|
2025-05-20 19:23:36 -07:00
|
|
|
|
2023-07-23 12:23:18 +00:00
|
|
|
import { RemoteButton } from '/@/remote/components/buttons/remote-button';
|
2025-05-20 19:23:36 -07:00
|
|
|
import { useIsDark, useToggleDark } from '/@/remote/store';
|
|
|
|
|
import { AppTheme } from '/@/shared/types/domain-types';
|
2023-07-23 12:23:18 +00:00
|
|
|
|
|
|
|
|
export const ThemeButton = () => {
|
|
|
|
|
const isDark = useIsDark();
|
|
|
|
|
const toggleDark = useToggleDark();
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const targetTheme: AppTheme = isDark ? AppTheme.DEFAULT_DARK : AppTheme.DEFAULT_LIGHT;
|
|
|
|
|
document.body.setAttribute('data-theme', targetTheme);
|
|
|
|
|
}, [isDark]);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<RemoteButton
|
|
|
|
|
mr={5}
|
2025-05-20 19:23:36 -07:00
|
|
|
onClick={() => toggleDark()}
|
2023-07-23 12:23:18 +00:00
|
|
|
size="xl"
|
|
|
|
|
tooltip="Toggle Theme"
|
|
|
|
|
variant="default"
|
|
|
|
|
>
|
|
|
|
|
{isDark ? <RiSunLine size={30} /> : <RiMoonLine size={30} />}
|
|
|
|
|
</RemoteButton>
|
|
|
|
|
);
|
|
|
|
|
};
|