import React, { useEffect, useCallback, 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 '../services/AppContainer'; import PageContainer from '../services/PageContainer'; import PaginationWrapper from './PaginationWrapper'; const PageList = (props) => { const { appContainer, pageContainer, t } = props; const { path } = pageContainer.state; const [pages, setPages] = useState(null); const [isLoading, setIsLoading] = useState(true); const [activePage, setActivePage] = useState(1); const [totalPages, setTotalPages] = useState(0); const [limit, setLimit] = useState(null); function setPageNumber(selectedPageNumber) { setActivePage(selectedPageNumber); } const updatePageList = useCallback(async() => { const page = activePage; const res = await appContainer.apiv3Get('/pages/list', { path, page }); setPages(res.data.pages); setIsLoading(false); setTotalPages(res.data.totalCount); setLimit(res.data.limit); }, [appContainer, path, activePage]); useEffect(() => { updatePageList(); }, [updatePageList]); if (isLoading) { return (
); } const pageList = pages.map(page => (
  • )); if (pageList.length === 0) { return (
    {/* eslint-disable-next-line react/no-danger */}

    ); } 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), }; export default PageListTranslation;