{"ast":null,"code":"import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\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  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__*/_jsxs(_Fragment, {\n    children: [searchFilter && /*#__PURE__*/_jsx(SearchBox, {\n      className: cn(classNameSearch),\n      onSearch: onSearch,\n      placeholder: placeholder\n    }), filters && /*#__PURE__*/_jsx(ListFilters, {\n      title: 'Filtrer :',\n      onChange: onChangeFilter,\n      filteredList: items,\n      filters: filters\n    }), /*#__PURE__*/_jsx(\"div\", {\n      className: styles.listCont,\n      children: /*#__PURE__*/_jsx(\"ul\", {\n        className: cn(styles.list, classNameList),\n        children: listedItems.map(function (item) {\n          return renderItem(item);\n        })\n      })\n    }), hasMoreToShow && /*#__PURE__*/_jsxs(Button, {\n      className: cn(styles.button),\n      onClick: function onClick() {\n        return setShowAll(true);\n      },\n      children: [/*#__PURE__*/_jsx(CircleButton, {\n        color: \"white\",\n        icon: \"plus\"\n      }), /*#__PURE__*/_jsx(\"p\", {\n        className: cn('p--m'),\n        children: loadMore\n      })]\n    })]\n  });\n};\n\nexport default List;","map":null,"metadata":{},"sourceType":"module"}