accordion-collapse-react-native
Version:
  [;var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _lodash=_interopRequireDefault(require("lodash.get"));var _Collapse=_interopRequireDefault(require("../Collapse"));var _CollapseBody=_interopRequireDefault(require("../CollapseBody"));var _CollapseHeader=_interopRequireDefault(require("../CollapseHeader"));var _jsxFileName="/home/runner/work/Accordion-Collapse-react-native/Accordion-Collapse-react-native/src/components/AccordionList/index.js";var isNil=function isNil(element){return element==null;};var AccordionList=_react.default.forwardRef(function(_ref,ref){var data=_ref.data,_ref$list=_ref.list,list=_ref$list===void 0?[]:_ref$list,_ref$header=_ref.header,header=_ref$header===void 0?function(){return undefined;}:_ref$header,_ref$body=_ref.body,body=_ref$body===void 0?function(){return undefined;}:_ref$body,_ref$onToggle=_ref.onToggle,_onToggle=_ref$onToggle===void 0?function(){return undefined;}:_ref$onToggle,_ref$isDisabled=_ref.isDisabled,isDisabled=_ref$isDisabled===void 0?function(){return undefined;}:_ref$isDisabled,keyExtractor=_ref.keyExtractor,expandedKey=_ref.expandedKey,expandedIndex=_ref.expandedIndex,extraData=_ref.extraData,restProps=(0,_objectWithoutProperties2.default)(_ref,["data","list","header","body","onToggle","isDisabled","keyExtractor","expandedKey","expandedIndex","extraData"]);var _keyExtractor=(0,_react.useMemo)(function(){return keyExtractor||function(item,index){return index;};},[keyExtractor]);var mergeList=(0,_react.useMemo)(function(){return data||list;},[data,list]);var _expandedKey=(0,_react.useMemo)(function(){var selectedItem=(0,_lodash.default)(mergeList,expandedIndex);var expandedKeyViaIndex=selectedItem?_keyExtractor(selectedItem,expandedIndex):undefined;return isNil(expandedKey)?isNil(expandedKeyViaIndex)?undefined:expandedKeyViaIndex:expandedKey;},[mergeList,expandedKey,expandedIndex,_keyExtractor]);var _useState=(0,_react.useState)(_expandedKey),_useState2=(0,_slicedToArray2.default)(_useState,2),selected=_useState2[0],setSelected=_useState2[1];(0,_react.useEffect)(function(){setSelected(_expandedKey);},[_expandedKey]);return _react.default.createElement(_reactNative.FlatList,(0,_extends2.default)({ref:ref,data:mergeList,renderItem:function renderItem(_ref2){var item=_ref2.item,index=_ref2.index;var isElementExpanded=_keyExtractor(item,index)===selected;return _react.default.createElement(_Collapse.default,{isExpanded:isElementExpanded,onToggle:function onToggle(isExpanded){var newlySelected=_keyExtractor(item,index);_onToggle(newlySelected,index,isExpanded);setSelected(isExpanded&&!isNil(newlySelected)?newlySelected:undefined);},disabled:isDisabled(item,index),__source:{fileName:_jsxFileName,lineNumber:65}},_react.default.createElement(_CollapseHeader.default,{__source:{fileName:_jsxFileName,lineNumber:77}},header(item,index,isElementExpanded)),_react.default.createElement(_CollapseBody.default,{__source:{fileName:_jsxFileName,lineNumber:80}},body(item,index,isElementExpanded)));},keyExtractor:keyExtractor},restProps,{__source:{fileName:_jsxFileName,lineNumber:59}}));});var _default=AccordionList;exports.default=_default;