import { usePersistentState } from "@/App/persistent_state" import { DetailsHTMLAttributes, Dispatch, PropsWithChildren, SetStateAction } from "react"; type Props = { localStorageKey: string, initiallyOpen?: boolean, } & DetailsHTMLAttributes; // A
node that remembers whether it was open or closed by storing that state in localStorage. export function PersistentDetailsLocalStorage({localStorageKey, initiallyOpen, children, ...rest}: PropsWithChildren) { const [open, setOpen] = usePersistentState(localStorageKey, initiallyOpen); return
setOpen(e.newState === "open")} {...rest}> {children}
; } export function PersistentDetails({state, setState, children, ...rest}: PropsWithChildren<{state: boolean, setState: Dispatch>}>) { return
setState(e.newState === "open")} {...rest}> {children}
; }