@@ -125,7 +125,6 @@ const useBrowseParamsStateWithUrlSync = (initialState: BrowseParams) => {
125125 ) => {
126126 rawSetState ( ( curState ) => {
127127 const newState = {
128- ...curState ,
129128 ...( stateUpdate instanceof Function
130129 ? stateUpdate ( curState )
131130 : stateUpdate ) ,
@@ -168,14 +167,18 @@ const createUseBrowseState = ({ syncWithUrl }: { syncWithUrl: boolean }) => {
168167 const dataset = type === "dataset" ? iri : paramDataset ;
169168 const filters = getFiltersFromParams ( browseParams ) ;
170169
171- const setSearch = useEvent ( ( v : string ) => setParams ( { search : v } ) ) ;
170+ const setSearch = useEvent ( ( v : string ) =>
171+ setParams ( ( prev ) => ( { ...prev , search : v } ) )
172+ ) ;
172173 const setIncludeDrafts = useEvent ( ( v : boolean ) =>
173- setParams ( { includeDrafts : v } )
174+ setParams ( ( prev ) => ( { ... prev , includeDrafts : v } ) )
174175 ) ;
175176 const setOrder = useEvent ( ( v : SearchCubeResultOrder ) =>
176- setParams ( { order : v } )
177+ setParams ( ( prev ) => ( { ...prev , order : v } ) )
178+ ) ;
179+ const setDataset = useEvent ( ( v : string ) =>
180+ setParams ( ( prev ) => ( { ...prev , dataset : v } ) )
177181 ) ;
178- const setDataset = useEvent ( ( v : string ) => setParams ( { dataset : v } ) ) ;
179182
180183 const previousOrderRef = useRef < SearchCubeResultOrder > (
181184 SearchCubeResultOrder . Score
@@ -187,16 +190,24 @@ const createUseBrowseState = ({ syncWithUrl }: { syncWithUrl: boolean }) => {
187190 includeDrafts : ! ! includeDrafts ,
188191 setIncludeDrafts,
189192 onReset : ( ) => {
190- setParams ( { search : "" , order : SearchCubeResultOrder . CreatedDesc } ) ;
193+ setParams ( ( prev ) => ( {
194+ ...prev ,
195+ search : "" ,
196+ order :
197+ previousOrderRef . current === SearchCubeResultOrder . Score
198+ ? SearchCubeResultOrder . CreatedDesc
199+ : previousOrderRef . current ,
200+ } ) ) ;
191201 } ,
192202 onSubmitSearch : ( newSearch : string ) => {
193- setParams ( {
203+ setParams ( ( prev ) => ( {
204+ ...prev ,
194205 search : newSearch ,
195206 order :
196207 newSearch === ""
197208 ? SearchCubeResultOrder . CreatedDesc
198209 : previousOrderRef . current ,
199- } ) ;
210+ } ) ) ;
200211 } ,
201212 search,
202213 order,
@@ -210,8 +221,8 @@ const createUseBrowseState = ({ syncWithUrl }: { syncWithUrl: boolean }) => {
210221 setDataset,
211222 filters,
212223 setFilters : ( filters : BrowseFilter [ ] ) => {
213- setParams ( ( params ) => ( {
214- ...params ,
224+ setParams ( ( prev ) => ( {
225+ ...prev ,
215226 ...getParamsFromFilters ( filters ) ,
216227 } ) ) ;
217228 } ,
0 commit comments