import { Accordion, Grid, Group, Stack, Text } from '@mantine/core'; import { IconBrush, IconChartCandle, IconDragDrop, IconLayout } from '@tabler/icons'; import { useTranslation } from 'next-i18next'; import { ReactNode } from 'react'; import { GridstackConfiguration } from './Layout/GridstackConfiguration'; import { LayoutSelector } from './Layout/LayoutSelector'; import { BackgroundChanger } from './Meta/BackgroundChanger'; import { FaviconChanger } from './Meta/FaviconChanger'; import { LogoImageChanger } from './Meta/LogoImageChanger'; import { BrowserTabTitle } from './Meta/MetaTitleChanger'; import { DashboardTitleChanger } from './Meta/PageTitleChanger'; import { ColorSelector } from './Theme/ColorSelector'; import { CustomCssChanger } from './Theme/CustomCssChanger'; import { DashboardTilesOpacitySelector } from './Theme/OpacitySelector'; import { ShadeSelector } from './Theme/ShadeSelector'; export const CustomizationSettingsAccordeon = () => { const items = getItems().map((item) => ( {item.content} )); return ( {items} ); }; interface AccordionLabelProps { label: string; image: ReactNode; description: string; } const AccordionLabel = ({ label, image, description }: AccordionLabelProps) => ( {image}
{label} {description}
); const getItems = () => { const { t } = useTranslation([ 'settings/customization/general', 'settings/customization/color-selector', ]); return [ { id: 'layout', image: , label: t('accordeon.layout.name'), description: t('accordeon.layout.description'), content: , }, { id: 'gridstack', image: , label: t('accordeon.gridstack.name'), description: t('accordeon.gridstack.description'), content: , }, { id: 'page_metadata', image: , label: t('accordeon.pageMetadata.name'), description: t('accordeon.pageMetadata.description'), content: ( <> ), }, { id: 'appereance', image: , label: t('accordeon.appereance.name'), description: t('accordeon.appereance.description'), content: ( <> {t('settings/customization/color-selector:colors')} ), }, ]; };