@@ -6,7 +6,7 @@ import {sortObjects, valueForSort} from "../utils/Sort";
66import { headerIcon } from "../utils/Forms" ;
77import "./Entities.scss" ;
88import { Button , Loader , Pagination , Tooltip } from "@surfnet/sds" ;
9- import { pageCount } from "../utils/Pagination" ;
9+ import { pageCount , searchParameterFromQueryParams , storeSearchQueryParameter } from "../utils/Pagination" ;
1010import { useNavigate } from "react-router-dom" ;
1111
1212export const Entities = ( {
@@ -41,11 +41,10 @@ export const Entities = ({
4141 busy = false
4242 } ) => {
4343
44- const [ initial , setInitial ] = useState ( ! isEmpty ( customSearch ) ) ;
4544 const [ query , setQuery ] = useState ( "" ) ;
46- const [ sorted , setSorted ] = useState ( defaultSort ) ;
47- const [ reverse , setReverse ] = useState ( false ) ;
48- const [ page , setPage ] = useState ( 1 ) ;
45+ const [ sorted , setSorted ] = useState ( searchParameterFromQueryParams ( "sort" , false , defaultSort ) ) ;
46+ const [ reverse , setReverse ] = useState ( "DESC" === searchParameterFromQueryParams ( "sortDirection" , false , "ASC" ) ) ;
47+ const [ page , setPage ] = useState ( searchParameterFromQueryParams ( "page" , true , 1 ) ) ;
4948
5049 const searchRef = useRef ( ) ;
5150 const navigate = useNavigate ( ) ;
@@ -126,15 +125,16 @@ export const Entities = ({
126125 const setSortedKey = key => {
127126 const newReserve = ( sorted === key ? ! reverse : false ) ;
128127 setSorted ( key ) ;
128+ storeSearchQueryParameter ( "sort" , key ) ;
129129 setReverse ( newReserve ) ;
130+ storeSearchQueryParameter ( "sortDirection" , newReserve ? "ASC" : "DESC" ) ;
130131 callCustomSearch ( query , key , newReserve , page ) ;
131132 }
132133
133134 const callCustomSearch = ( newQuery , newSorted , newReversed , newPage ) => {
134135 if ( customSearch ) {
135136 //Adjust page, as serverSide is zero-based
136137 customSearch ( newQuery , newSorted , newReversed , newPage - 1 ) ;
137- setInitial ( false ) ;
138138 }
139139 if ( searchCallback ) {
140140 const searchResult = filterEntities ( query ) ;
@@ -206,12 +206,13 @@ export const Entities = ({
206206 </ tbody >
207207 </ table >
208208 </ div > }
209- { ( ! hasEntities && ! initial && ! customEmptySearch && ! loading && ! hideTitle && ! busy ) &&
209+ { ( ! hasEntities && ! customEmptySearch && ! loading && ! hideTitle && ! busy ) &&
210210 < p className = "no-entities" > { customNoEntities || I18n . t ( `${ modelName } .noEntities` ) } </ p > }
211211 < Pagination currentPage = { page }
212212 onChange = { nbr => {
213213 setPage ( nbr ) ;
214214 callCustomSearch ( query , sorted , reverse , nbr ) ;
215+ storeSearchQueryParameter ( "page" , nbr ) ;
215216 } }
216217 total = { totalElements || total }
217218 pageCount = { pageCount } />
0 commit comments