import { ChevronDown } from "@styled-icons/boxicons-regular"; import { State, store } from "../../redux"; import { Action } from "../../redux/reducers"; import Details from "../ui/Details"; import { Children } from "../../types/Preact"; interface Props { id: string; defaultValue: boolean; sticky?: boolean; large?: boolean; summary: Children; children: Children; } export default function CollapsibleSection({ id, defaultValue, summary, children, ...detailsProps }: Props) { const state: State = store.getState(); function setState(state: boolean) { if (state === defaultValue) { store.dispatch({ type: "SECTION_TOGGLE_UNSET", id, } as Action); } else { store.dispatch({ type: "SECTION_TOGGLE_SET", id, state, } as Action); } } return (
setState(e.currentTarget.open)} {...detailsProps}>
{summary}
{children}
); }