|
|
@@ -1,40 +1,29 @@
|
|
|
import React, { useState } from 'react';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
|
|
-import Page from './PageList/Page';
|
|
|
+import { IPageHasId } from '~/interfaces/page';
|
|
|
+import { IPagingResult } from '~/interfaces/paging-result';
|
|
|
|
|
|
-import { useSWRxPageList } from '~/stores/page';
|
|
|
-
|
|
|
-import PaginationWrapper from './PaginationWrapper';
|
|
|
+import Page from './Page';
|
|
|
+import PaginationWrapper from '../PaginationWrapper';
|
|
|
|
|
|
|
|
|
type Props = {
|
|
|
- path: string,
|
|
|
+ pages: IPagingResult<IPageHasId>,
|
|
|
liClasses?: string[],
|
|
|
}
|
|
|
|
|
|
const PageList = (props: Props): JSX.Element => {
|
|
|
const { t } = useTranslation();
|
|
|
- const { path, liClasses } = props;
|
|
|
+ const { pages, liClasses } = props;
|
|
|
|
|
|
const [activePage, setActivePage] = useState(1);
|
|
|
|
|
|
- const { data: pagesListData, error: errors } = useSWRxPageList(path, activePage);
|
|
|
-
|
|
|
function setPageNumber(selectedPageNumber) {
|
|
|
setActivePage(selectedPageNumber);
|
|
|
}
|
|
|
|
|
|
- if (errors != null) {
|
|
|
- return (
|
|
|
- <div className="my-5">
|
|
|
- {/* eslint-disable-next-line react/no-array-index-key */}
|
|
|
- {errors.map((error, index) => <div key={index} className="text-danger">{error.message}</div>)}
|
|
|
- </div>
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- if (pagesListData == null) {
|
|
|
+ if (pages == null) {
|
|
|
return (
|
|
|
<div className="wiki">
|
|
|
<div className="text-muted text-center">
|
|
|
@@ -46,7 +35,7 @@ const PageList = (props: Props): JSX.Element => {
|
|
|
|
|
|
const liClassesStr = (liClasses ?? ['mb-3']).join(' ');
|
|
|
|
|
|
- const pageList = pagesListData.items.map(page => (
|
|
|
+ const pageList = pages.items.map(page => (
|
|
|
<li key={page._id} className={liClassesStr}>
|
|
|
<Page page={page} />
|
|
|
</li>
|
|
|
@@ -68,8 +57,8 @@ const PageList = (props: Props): JSX.Element => {
|
|
|
<PaginationWrapper
|
|
|
activePage={activePage}
|
|
|
changePage={setPageNumber}
|
|
|
- totalItemsCount={pagesListData.totalCount}
|
|
|
- pagingLimit={pagesListData.limit}
|
|
|
+ totalItemsCount={pages.totalCount}
|
|
|
+ pagingLimit={pages.limit}
|
|
|
align="center"
|
|
|
/>
|
|
|
</div>
|