import React, { useState } from 'react'; import PropTypes from 'prop-types'; import matchSorter from 'match-sorter'; import { sortBy } from 'lodash'; import { FormattedMessage } from 'react-intl'; import LeftMenuLink from '../LeftMenuLink'; import LeftMenuLinkHeader from '../LeftMenuLinkHeader'; import LeftMenuListLink from './LeftMenuListLink'; import EmptyLinksList from './EmptyLinksList'; import EmptyLinksListWrapper from './EmptyLinksListWrapper'; const LeftMenuLinksSection = ({ section, searchable, location, links, emptyLinksListMessage, shrink, }) => { const [search, setSearch] = useState(''); const filteredList = sortBy( matchSorter(links, search, { keys: ['label'], }), 'label' ); return ( <> {filteredList.length > 0 ? ( filteredList.map((link, index) => ( )) ) : ( {msg => {msg}} )} ); }; LeftMenuLinksSection.defaultProps = { shrink: false, }; LeftMenuLinksSection.propTypes = { section: PropTypes.string.isRequired, searchable: PropTypes.bool.isRequired, shrink: PropTypes.bool, location: PropTypes.shape({ pathname: PropTypes.string, }).isRequired, links: PropTypes.arrayOf(PropTypes.object).isRequired, emptyLinksListMessage: PropTypes.string, }; LeftMenuLinksSection.defaultProps = { emptyLinksListMessage: 'components.ListRow.empty', }; export default LeftMenuLinksSection;