{"ast":null,"code":"import { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nvar _jsxFileName = \"/home/gkkdzdg/www/src/components/list/List.js\",\n    _this = this,\n    _s = $RefreshSig$();\n\nimport cn from 'classnames';\nimport BoxButton from 'components/gui/BoxButton';\nimport Button from 'components/gui/Button';\nimport CircleButton from 'components/gui/CircleButton';\nimport ListFilters from 'components/listFilters/ListFilters';\nimport SearchBox from 'components/searchBox/SearchBox';\nimport { useIsDesktop } from 'hooks/useIsDevice';\nimport { useEffect, useState } from 'react';\nimport styles from './List.module.scss';\n\nvar List = function List(_ref) {\n  _s();\n\n  var classNameSearch = _ref.classNameSearch,\n      classNameList = _ref.classNameList,\n      items = _ref.items,\n      renderItem = _ref.renderItem,\n      _ref$limit = _ref.limit,\n      limit = _ref$limit === void 0 ? 0 : _ref$limit,\n      searchFilter = _ref.searchFilter,\n      placeholder = _ref.placeholder,\n      loadMore = _ref.loadMore,\n      filters = _ref.filters;\n\n  var _useState = useState(''),\n      input = _useState[0],\n      setInput = _useState[1];\n\n  var _useState2 = useState(true),\n      showAll = _useState2[0],\n      setShowAll = _useState2[1];\n\n  var onSearch = function onSearch(input) {\n    return setInput(input);\n  };\n\n  var _useState3 = useState(filters && filters.length && filters[0]),\n      currentFilter = _useState3[0],\n      setCurrentFilter = _useState3[1];\n\n  var onChangeFilter = function onChangeFilter(label) {\n    setCurrentFilter(label);\n  };\n\n  var isDesktop = useIsDesktop();\n  useEffect(function () {\n    if (!isDesktop) setShowAll(false);\n  }, [isDesktop]);\n  var listedItems = items;\n  if (searchFilter && input != '') listedItems = listedItems.filter(function (item) {\n    return searchFilter(item, input);\n  });\n\n  if (currentFilter) {\n    listedItems = listedItems.filter(currentFilter.filter);\n  }\n\n  var hasMoreToShow = limit > 0 && input == '' && !showAll && listedItems.length > limit;\n\n  if (hasMoreToShow) {\n    listedItems = listedItems.slice(0, limit);\n  }\n\n  return /*#__PURE__*/_jsxDEV(_Fragment, {\n    children: [searchFilter && /*#__PURE__*/_jsxDEV(SearchBox, {\n      className: cn(classNameSearch),\n      onSearch: onSearch,\n      placeholder: placeholder\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 46,\n      columnNumber: 27\n    }, _this), filters && /*#__PURE__*/_jsxDEV(ListFilters, {\n      title: 'Filtrer :',\n      onChange: onChangeFilter,\n      filteredList: items,\n      filters: filters\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 51,\n      columnNumber: 22\n    }, _this), /*#__PURE__*/_jsxDEV(\"div\", {\n      className: styles.listCont,\n      children: /*#__PURE__*/_jsxDEV(\"ul\", {\n        className: cn(styles.list, classNameList),\n        children: listedItems.map(function (item) {\n          return renderItem(item);\n        })\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 59,\n        columnNumber: 13\n      }, _this)\n    }, void 0, false, {\n      fileName: _jsxFileName,\n      lineNumber: 58,\n      columnNumber: 10\n    }, _this), hasMoreToShow && /*#__PURE__*/_jsxDEV(Button, {\n      className: cn(styles.button),\n      onClick: function onClick() {\n        return setShowAll(true);\n      },\n      children: [/*#__PURE__*/_jsxDEV(CircleButton, {\n        color: \"white\",\n        icon: \"plus\"\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 68,\n        columnNumber: 13\n      }, _this), /*#__PURE__*/_jsxDEV(\"p\", {\n        className: cn('p--m'),\n        children: loadMore\n      }, void 0, false, {\n        fileName: _jsxFileName,\n        lineNumber: 72,\n        columnNumber: 13\n      }, _this)]\n    }, void 0, true, {\n      fileName: _jsxFileName,\n      lineNumber: 64,\n      columnNumber: 10\n    }, _this)]\n  }, void 0, true);\n};\n\n_s(List, \"x8LMdr0JO12kH/FhPdcc9Bkb91U=\", false, function () {\n  return [useIsDesktop];\n});\n\n_c = List;\nexport default List;\n\nvar _c;\n\n$RefreshReg$(_c, \"List\");","map":{"version":3,"sources":["/home/gkkdzdg/www/src/components/list/List.js"],"names":["cn","BoxButton","Button","CircleButton","ListFilters","SearchBox","useIsDesktop","useEffect","useState","styles","List","classNameSearch","classNameList","items","renderItem","limit","searchFilter","placeholder","loadMore","filters","input","setInput","showAll","setShowAll","onSearch","length","currentFilter","setCurrentFilter","onChangeFilter","label","isDesktop","listedItems","filter","item","hasMoreToShow","slice","listCont","list","map","button"],"mappings":"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","sourcesContent":["\nimport cn from 'classnames'\nimport BoxButton from 'components/gui/BoxButton'\nimport Button from 'components/gui/Button'\nimport CircleButton from 'components/gui/CircleButton'\nimport ListFilters from 'components/listFilters/ListFilters'\nimport SearchBox from 'components/searchBox/SearchBox'\nimport { useIsDesktop } from 'hooks/useIsDevice'\nimport { useEffect, useState } from 'react'\nimport styles from './List.module.scss'\n\nconst List = ({ classNameSearch, classNameList, items, renderItem, limit=0, searchFilter, placeholder, loadMore, filters, }) => {\n\n   const [input, setInput] = useState('')\n   const [showAll, setShowAll] = useState(true)\n\n   const onSearch = input => setInput(input)\n\n   const [currentFilter, setCurrentFilter] = useState(filters && filters.length && filters[0])\n   const onChangeFilter = (label) => {\n      setCurrentFilter(label)\n   }\n\n   const isDesktop = useIsDesktop()\n\n   useEffect(() => {\n      if (!isDesktop) setShowAll(false)\n   }, [isDesktop])\n\n   let listedItems = items\n\n   if (searchFilter && input != '') listedItems = listedItems.filter(item => searchFilter(item, input))\n\n   if(currentFilter) {\n      listedItems = listedItems.filter(currentFilter.filter)\n   }\n\n   const hasMoreToShow = limit > 0 && input == '' && !showAll && listedItems.length > limit\n   if (hasMoreToShow) {\n      listedItems = listedItems.slice(0, limit)\n   }\n\n\n   return (\n      <>\n         {searchFilter && <SearchBox\n            className={cn(classNameSearch)}\n            onSearch={onSearch}\n            placeholder={placeholder}\n         />}\n         {filters && <ListFilters\n            title={'Filtrer :'}\n            onChange={onChangeFilter}\n            filteredList={items}\n            filters={filters}\n         />\n         }\n         <div className={styles.listCont}>\n            <ul className={cn(styles.list, classNameList)}>\n               {listedItems.map(item => renderItem(item))}\n            </ul>\n         </div>\n         {hasMoreToShow &&\n         <Button\n            className={cn(styles.button)}\n            onClick={() => setShowAll(true)}\n            >\n            <CircleButton\n               color='white'\n               icon='plus'\n               />\n            <p className={cn('p--m')}>{loadMore}</p>\n         </Button>\n         }\n      </>\n   )\n}\n\nexport default List"]},"metadata":{},"sourceType":"module"}