import React, { useMemo, type JSX } from 'react'; import { type GrowiThemeMetadata, GrowiThemeSchemeType } from '@growi/core'; import { useTranslation } from 'next-i18next'; import { ThemeColorBox } from './ThemeColorBox'; type Props = { availableThemes: GrowiThemeMetadata[], selectedTheme?: string, onSelected?: (themeName: string) => void, }; const CustomizeThemeOptions = (props: Props): JSX.Element => { const { t } = useTranslation('admin'); const { availableThemes, selectedTheme, onSelected } = props; const lightNDarkThemes = useMemo(() => { return availableThemes.filter(s => s.schemeType === GrowiThemeSchemeType.BOTH); }, [availableThemes]); const oneModeThemes = useMemo(() => { return availableThemes.filter(s => s.schemeType !== GrowiThemeSchemeType.BOTH); }, [availableThemes]); return ( <> {/* Light and Dark Themes */}

{t('customize_settings.theme_desc.light_and_dark')}

{lightNDarkThemes.map((theme) => { return ( onSelected?.(theme.name)} /> ); })}
{/* Only one mode Theme */}

{t('customize_settings.theme_desc.unique')}

{oneModeThemes.map((theme) => { return ( onSelected?.(theme.name)} /> ); })}
); }; export default CustomizeThemeOptions;