import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import Page from './PageList/Page'; import { withUnstatedContainers } from './UnstatedUtils'; import AppContainer from '~/client/services/AppContainer'; import PageContainer from '~/client/services/PageContainer'; import { useSWRxPageList } from '~/stores/page'; import PaginationWrapper from './PaginationWrapper'; const PageList = (props) => { const { appContainer, pageContainer, t } = props; const { path } = pageContainer.state; const [activePage, setActivePage] = useState(1); const { data: pagesListData, error: errors } = useSWRxPageList(path, activePage); function setPageNumber(selectedPageNumber) { setActivePage(selectedPageNumber); } if (errors != null) { return (
{/* eslint-disable-next-line react/no-array-index-key */} {errors.map((error, index) =>
{error.message}
)}
); } if (pagesListData == null) { return (
); } const liClasses = props.liClasses.join(' '); const pageList = pagesListData.items.map(page => (
  • )); if (pageList.length === 0) { return (
    {/* eslint-disable-next-line react/no-danger */}

    {t('custom_navigation.no_page_list')}

    ); } if (appContainer.config.disableLinkSharing) { return (
    {/* eslint-disable-next-line react/no-danger */}

    {t('custom_navigation.link_sharing_is_disabled')}

    ); } return (
    ); }; const PageListWrapper = withUnstatedContainers(PageList, [AppContainer, PageContainer]); const PageListTranslation = withTranslation()(PageListWrapper); PageList.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer), pageContainer: PropTypes.instanceOf(PageContainer), liClasses: PropTypes.arrayOf(PropTypes.string), }; PageList.defaultProps = { liClasses: ['mb-3'], }; export default PageListTranslation;