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 */}