@szhsin/react-accordion
Version:
The complete accordion solution for React.
30 lines (26 loc) • 925 B
JavaScript
;
var React = require('react');
var constants = require('../utils/constants.cjs');
const getItemState = (providerValue, key, itemInitialEntered) => {
const {
stateMap,
mountOnEnter,
initialEntered
} = providerValue;
const _initialEntered = itemInitialEntered != null ? itemInitialEntered : initialEntered;
return stateMap.get(key) || {
status: _initialEntered ? 'entered' : mountOnEnter ? 'unmounted' : 'exited',
isMounted: !mountOnEnter,
isEnter: _initialEntered,
isResolved: true
};
};
const useAccordionContext = () => {
const context = React.useContext(constants.AccordionContext);
if (process.env.NODE_ENV !== 'production' && !context.stateMap) {
throw new Error('[React-Accordion] Cannot find a <AccordionProvider/> above this AccordionItem.');
}
return context;
};
exports.getItemState = getItemState;
exports.useAccordionContext = useAccordionContext;