UNPKG

@szhsin/react-accordion

Version:

The complete accordion solution for React.

21 lines (20 loc) 853 B
import { AccordionContext } from "../utils/constants.mjs"; import { useContext } from "react"; //#region src/hooks/useAccordionContext.ts const getItemState = (providerValue, key, itemInitialEntered) => { const { stateMap, mountOnEnter, initialEntered } = providerValue; const _initialEntered = itemInitialEntered ?? initialEntered; return stateMap.get(key) || { status: _initialEntered ? "entered" : mountOnEnter ? "unmounted" : "exited", isMounted: !mountOnEnter, isEnter: _initialEntered, isResolved: true }; }; const useAccordionContext = () => { const context = useContext(AccordionContext); if (process.env.NODE_ENV !== "production" && !context.stateMap) throw new Error("[React-Accordion] Cannot find a <AccordionProvider/> above this AccordionItem."); return context; }; //#endregion export { getItemState, useAccordionContext };