import { Monitor, MonitorDot, Moon, Sun } from 'lucide-react' import { useTheme } from 'next-themes' import { themes } from 'ui/src/components/ThemeProvider/themes' import { PageType, useRegisterCommands, useRegisterPage, useSetCommandMenuOpen, useSetPage, type CommandOptions, } from '..' const THEME_SWITCHER_PAGE_NAME = 'Switch theme' const useThemeSwitcherCommands = ({ options }: { options?: CommandOptions } = {}) => { const setIsOpen = useSetCommandMenuOpen() const setPage = useSetPage() const { setTheme } = useTheme() useRegisterPage(THEME_SWITCHER_PAGE_NAME, { type: PageType.Commands, sections: [ { id: 'switch-theme', name: 'Switch theme', commands: themes .filter(({ name }) => name === 'System' || name === 'Light' || name === 'Dark') .map((theme) => ({ id: `switch-theme-${theme.value}`, name: theme.name, action: () => { setTheme(theme.value) setIsOpen(false) }, icon: () => theme.name === 'System' ? : theme.name === 'Light' ? : , })), }, ], }) useRegisterCommands( 'Theme', [ { id: 'switch-theme', name: 'Switch theme', action: () => setPage(THEME_SWITCHER_PAGE_NAME), defaultHidden: true, icon: () => , }, ], options ) } export { useThemeSwitcherCommands }