UNPKG

nixa-react-native-accordion

Version:

React Native Accordion: Reanimated Collapsible Sections for React Native.

54 lines 1.62 kB
import React, { Children, cloneElement, createContext, useMemo } from 'react'; import { View } from 'react-native'; import styles from './style'; import { jsx as _jsx } from "react/jsx-runtime"; export const AccordionContext = /*#__PURE__*/createContext({}); const AccordionList = props => { const { containerStyle, compact = false, animationDuration = 300, children, androidRipple = { color: 'rgba(0,0,0,0.3)', foreground: true }, rightIcon, titleStyle, subTitleStyle, headerStyle, titleContainerStyle, itemContainerStyle, contentContainerStyle, contentWrapperStyle } = props; const accordionContextValue = useMemo(() => ({ compact, animationDuration, androidRipple, rightIcon, titleStyle, subTitleStyle, headerStyle, titleContainerStyle, itemContainerStyle, contentContainerStyle, contentWrapperStyle }), [compact, animationDuration, androidRipple, rightIcon, titleStyle, subTitleStyle, headerStyle, titleContainerStyle, itemContainerStyle, contentContainerStyle, contentWrapperStyle]); const renderChildren = () => { return Children.map(children, (child, index) => { return /*#__PURE__*/cloneElement(child, { index }); }); }; return /*#__PURE__*/_jsx(AccordionContext.Provider, { value: accordionContextValue, children: /*#__PURE__*/_jsx(View, { style: [styles.accordion, compact && styles.compactAccordion, containerStyle], children: renderChildren() }) }); }; export default AccordionList; //# sourceMappingURL=AccordionList.js.map