@szhsin/react-accordion
Version:
The complete accordion solution for React.
23 lines (22 loc) • 934 B
JavaScript
;
const require_constants = require("../utils/constants.cjs");
let react = require("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 = (0, react.useContext)(require_constants.AccordionContext);
if (process.env.NODE_ENV !== "production" && !context.stateMap) throw new Error("[React-Accordion] Cannot find a <AccordionProvider/> above this AccordionItem.");
return context;
};
//#endregion
exports.getItemState = getItemState;
exports.useAccordionContext = useAccordionContext;