import * as React from 'react'; import Modal from 'react-modal'; import { Category, Service } from '@usercentrics/cmp-browser-sdk'; import TextField from '../../components/TextField'; import { useUsercentrics } from '../../contexts/UsercentricsContext'; import Content from './Content'; import { Navigation, getCategoriesBySearch, getContentDataByNavigation } from './extractContentData'; export type DetailsModalProps = { isOpen: boolean; onClose: VoidFunction; afterAcceptedAll: VoidFunction; showBackButton?: boolean; }; export const DetailsModal = ({ isOpen = false, onClose, afterAcceptedAll, showBackButton = true, }: DetailsModalProps): JSX.Element => { const [search, setSearch] = React.useState(''); const [filtered, setFiltered] = React.useState([]); const [navigation, setNavigation] = React.useState({}); const { categories, handlers, settingsLabels } = useUsercentrics(); React.useEffect(() => { setFiltered(getCategoriesBySearch(categories, search)); }, [categories, search]); const handleSearch = (e: React.ChangeEvent) => { setNavigation({}); setSearch(e.target.value); }; const onAcceptAll = () => { handlers?.acceptAll(); if (afterAcceptedAll) { afterAcceptedAll(); } onClose(); }; const onClickMenuCategoryItem = (event: React.MouseEvent) => { setNavigation({ categorySlug: event.currentTarget.dataset.categorySlug }); }; const onClickMenuServiceItem = (event: React.MouseEvent) => { setNavigation({ serviceId: event.currentTarget.dataset.serviceId }); }; return (
{showBackButton ? (
) : ( <> )}
); };