diff --git a/frontend/src/components/Pagination.tsx b/frontend/src/components/Pagination.tsx index b25fc5ef..e1eb9571 100644 --- a/frontend/src/components/Pagination.tsx +++ b/frontend/src/components/Pagination.tsx @@ -84,129 +84,136 @@ const Pagination = ({ pagination, setPage }: Props) => {
{totalHits > 1 && ( <> - {currentPage > 1 && ( - <> - { - event.preventDefault(); - setPage(0); - }} - > - First - {' '} - - )} - - {prev_pages !== false && - prev_pages && - prev_pages.map((page: number) => { - if (hasParams) { - return ( - - { - event.preventDefault(); - setPage(page); - }} - > - {page} - {' '} - - ); - } else { - return ( - - { - event.preventDefault(); - setPage(page); - }} - > - {page} - {' '} - - ); - } - })} - - {currentPage > 0 && {`< Page ${currentPage} `}} - - {next_pages && next_pages.length > 0 && ( - <> - {'>'}{' '} - {next_pages.map(page => { - if (hasParams) { - return ( - - { - event.preventDefault(); - setPage(page); - }} - > - {page} - {' '} - - ); - } else { - return ( - - { - event.preventDefault(); - setPage(page); - }} - > - {page} - {' '} - - ); - } - })} - - )} - - {lastPage > 0 && ( - <> - {hasParams && ( - + {currentPage > 1 && ( + <> + { event.preventDefault(); - setPage(lastPage || 0); + setPage(0); }} > - {hasMaxHits && `Max (${lastPage})`} - {!hasMaxHits && `Last (${lastPage})`} - + First + {' '} + + )} + + {prev_pages !== false && prev_pages && ( + <> + {prev_pages.map((page: number) => { + if (hasParams) { + return ( + + { + event.preventDefault(); + setPage(page); + }} + > + {page} + {' '} + + ); + } else { + return ( + + { + event.preventDefault(); + setPage(page); + }} + > + {page} + {' '} + + ); + } + })} + + )} + + {currentPage > 0 && ( + {`< Page ${currentPage} ${next_pages && next_pages.length > 0 ? '>' : ''}`} + )} + + <> + {next_pages && next_pages.length > 0 && ( + <> + {next_pages.map(page => { + if (hasParams) { + return ( + + { + event.preventDefault(); + setPage(page); + }} + > + {page} + {' '} + + ); + } else { + return ( + + { + event.preventDefault(); + setPage(page); + }} + > + {page} + {' '} + + ); + } + })} + )} - {!hasParams && ( - { - event.preventDefault(); - setPage(lastPage || 0); - }} - > - {hasMaxHits && `Max (${lastPage})`} - {!hasMaxHits && `Last (${lastPage})`} - + {lastPage > 0 && ( + <> + {hasParams && ( + { + event.preventDefault(); + setPage(lastPage || 0); + }} + > + {hasMaxHits && `Max (${lastPage})`} + {!hasMaxHits && `Last (${lastPage})`} + + )} + + {!hasParams && ( + { + event.preventDefault(); + setPage(lastPage || 0); + }} + > + {hasMaxHits && `Max (${lastPage})`} + {!hasMaxHits && `Last (${lastPage})`} + + )} + )} - )} + )} diff --git a/frontend/src/style.css b/frontend/src/style.css index 48037f6d..2760a356 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -709,14 +709,22 @@ video:-webkit-full-screen { /* pagination */ .pagination { padding: 30px 0; + display: flex; + justify-content: center; + flex-wrap: nowrap; margin-left: auto; margin-right: auto; text-align: center; } +.pagination span { + padding: 0 10px; +} + .pagination-item { padding: 5px; border: 1px solid; + margin: 0 2px; } /* info box */ @@ -1451,6 +1459,13 @@ video:-webkit-full-screen { label { text-align: unset; } + .pagination { + flex-wrap: wrap; + row-gap: 1.2rem; + } + .pagination span { + width: 100%; + } } .video-popup-menu img {