UNPKG

@gluestack-ui-nightly/core

Version:

Universal UI components for React Native, Expo, and Next.js

44 lines 1.38 kB
export const useAccordion = (props) => { const { type, isCollapsible, selectedValues, setSelectedValues } = props; const toggleItem = (itemValue, isDisabled = false) => { if (isDisabled || !itemValue) return; if (type === 'single') { if (isCollapsible) { if (selectedValues.includes(itemValue)) { setSelectedValues([]); } else { setSelectedValues([itemValue]); } } else { if (selectedValues.includes(itemValue)) return; setSelectedValues([itemValue]); } } else { if (isCollapsible) { if (selectedValues.includes(itemValue)) { setSelectedValues(selectedValues.filter((v) => v !== itemValue)); } else { setSelectedValues([...selectedValues, itemValue]); } } else { if (selectedValues.includes(itemValue)) return; setSelectedValues([...selectedValues, itemValue]); } } }; return { state: { selectedValues, toggleItem, }, }; }; //# sourceMappingURL=useAccordion.js.map