import * as React from 'react'; import Modal from 'react-modal'; import { Category } from '@usercentrics/cmp-browser-sdk'; import { SettingItem } from './SettingItem'; import { AcceptAndCloseCTA } from '../AcceptAndCloseCTA'; import { useUsercentrics } from '../../contexts/UsercentricsContext'; import { DecisionsContext, selectAllDecisions } from '../../contexts/DecisionsContext'; type Props = { isOpen: boolean; onAcceptAll: VoidFunction; onCloseAndAcceptAll: VoidFunction; onSave: VoidFunction; onMoreInfo: VoidFunction; categories: Category[]; }; export const SettingsModal = ({ categories, isOpen, onAcceptAll, onCloseAndAcceptAll, onSave, onMoreInfo, }: Props): JSX.Element => { const { settingsLabels, showCloseAndAcceptAllButton } = useUsercentrics(); const { decisions, updateDecision } = React.useContext(DecisionsContext); const isCategoryChecked = (category: Category) => { if (category.isEssential) { return true; } return selectAllDecisions(decisions) .filter(({ categorySlug }) => categorySlug === category.slug) .every(({ status }) => status); }; const onChangeSetting = (event: React.ChangeEvent) => { const id = event.currentTarget.name; const allDecisions = selectAllDecisions(decisions).filter(({ categorySlug }) => categorySlug === id); const isAllSelected = allDecisions.every(({ status }) => status); allDecisions.forEach(({ serviceId }) => updateDecision(serviceId, !isAllSelected)); }; return (
{showCloseAndAcceptAllButton && }

{settingsLabels?.secondLayer.title}

{settingsLabels?.secondLayer.description}

{categories && categories .filter((catg) => !catg.isHidden) .map((catg) => ( ))}
); };