1
0
Fork 0
freesewing/sites/shared/components/theme-picker.js

42 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-12-11 14:04:05 +01:00
import themes from 'shared/themes/index.js'
import ThemeIcon from 'shared/components/icons/theme.js'
import { useTranslation } from 'next-i18next'
2021-12-11 14:04:05 +01:00
2022-06-04 18:30:30 +02:00
const ThemePicker = ({ app, className, iconOnly=false }) => {
2022-02-13 15:45:27 +01:00
const { t } = useTranslation(['themes'])
2021-12-11 14:04:05 +01:00
return (
2022-06-04 18:30:30 +02:00
<div className={`dropdown dropdown-end ${className} w-auto`}>
<div tabIndex="0" className={iconOnly
? `btn btn-sm`
: `m-0 btn btn-neutral flex flex-row gap-2 btn-outline
md:btn-ghost
hover:bg-neutral hover:border-neutral-content
`}
>
<ThemeIcon />
2022-06-04 18:30:30 +02:00
{!iconOnly && <span>{t(`${app.theme}Theme`)}</span>}
</div>
<ul
tabIndex="0"
className="p-2 shadow menu dropdown-content bg-base-100 rounded-box w-52"
>
{Object.keys(themes).map(theme => (
<li key={theme}>
<button
onClick={() => app.setTheme(theme)}
className="btn btn-ghost hover:bg-base-200"
>
<span className="text-base-content">
{t(`${theme}Theme`)}
</span>
</button>
</li>
))}
</ul>
</div>
2021-12-11 14:04:05 +01:00
)
}
export default ThemePicker