import { useEffect, useState } from 'react'; import StorageUtils from '../utils/storage'; import { useAppContext } from '../utils/app.context'; import { classNames } from '../utils/misc'; import daisyuiThemes from 'daisyui/theme/object'; import { THEMES } from '../Config'; import { Cog8ToothIcon, MoonIcon, Bars3Icon, } from '@heroicons/react/24/outline'; export default function Header() { const [selectedTheme, setSelectedTheme] = useState(StorageUtils.getTheme()); const { setShowSettings } = useAppContext(); const setTheme = (theme: string) => { StorageUtils.setTheme(theme); setSelectedTheme(theme); }; useEffect(() => { document.body.setAttribute('data-theme', selectedTheme); document.body.setAttribute( 'data-color-scheme', daisyuiThemes[selectedTheme]?.['color-scheme'] ?? 'auto' ); }, [selectedTheme]); return (
{/* open sidebar button */}
llama.cpp
{/* action buttons (top right) */}
setShowSettings(true)} >
{/* theme controller is copied from https://daisyui.com/components/theme-controller/ */}
  • {THEMES.map((theme) => (
  • e.target.checked && setTheme(theme)} />
  • ))}
); }