@@ -177,7 +177,8 @@ module Card = {
177
177
<button
178
178
?onMouseDown
179
179
className = "hover:pointer px-2 rounded-lg text-white bg-fire-70 text-14"
180
- key = {keyword }>
180
+ key = {keyword }
181
+ >
181
182
{React .string (keyword )}
182
183
</button >
183
184
})-> React .array }
@@ -248,7 +249,8 @@ module InfoSidebar = {
248
249
setFilter (prev => {
249
250
{... prev , Filter .includeOfficial : ! filter .includeOfficial }
250
251
})
251
- }}>
252
+ }}
253
+ >
252
254
{React .string ("Official" )}
253
255
</Toggle >
254
256
<Toggle
@@ -257,7 +259,8 @@ module InfoSidebar = {
257
259
setFilter (prev => {
258
260
{... prev , Filter .includeCommunity : ! filter .includeCommunity }
259
261
})
260
- }}>
262
+ }}
263
+ >
261
264
{React .string ("Community" )}
262
265
</Toggle >
263
266
// <Toggle
@@ -275,15 +278,16 @@ module InfoSidebar = {
275
278
setFilter (prev => {
276
279
{... prev , Filter .includeOutdated : ! filter .includeOutdated }
277
280
})
278
- }}>
281
+ }}
282
+ >
279
283
{React .string ("Outdated" )}
280
284
</Toggle >
281
285
</div >
282
286
</div >
283
287
<div >
284
288
<h2 className = h2 > {React .string ("Guidelines" )} </h2 >
285
289
<ul className = "space-y-4" >
286
- <ReactRouter .Link to = # "docs/guidelines/publishing-packages" className = link >
290
+ <ReactRouter .Link to = # "/ docs/guidelines/publishing-packages" className = link >
287
291
{React .string ("Publishing ReScript npm packages" )}
288
292
</ReactRouter .Link >
289
293
/* <li> */
@@ -306,7 +310,7 @@ type state =
306
310
| All
307
311
| Filtered (string ) // search term
308
312
309
- let default = (props : props ) => {
313
+ let make = (props : props ) => {
310
314
open Markdown
311
315
312
316
let (state , setState ) = React .useState (_ => All )
@@ -395,7 +399,8 @@ let default = (props: props) => {
395
399
</Category >
396
400
}
397
401
398
- let router = Next .Router .useRouter ()
402
+ let location = ReactRouter .useLocation ()
403
+ let (searchParams , setSearchParams ) = ReactRouter .useSearchParams ()
399
404
400
405
// On first render, the router query is undefined so we set a flag.
401
406
let firstRenderDone = React .useRef (false )
@@ -407,16 +412,19 @@ let default = (props: props) => {
407
412
408
413
// On second render, this hook runs one more time to actually trigger the search.
409
414
React .useEffect (() => {
410
- router .query -> Dict .get ("search" )-> Option .forEach (onValueChange )
415
+ // TODO RR7: test this
416
+
417
+ // TODO RR7: this is broken
418
+ let _ = searchParams ["search" ]-> Option .map (onValueChange )
419
+
420
+ // location.search->Option.forEach(onValueChange)
421
+
422
+ // router.query->Dict.get("search")->Option.forEach(onValueChange)
411
423
412
424
None
413
425
}, [firstRenderDone .current ])
414
426
415
- let updateQuery = value =>
416
- router -> Next .Router .replaceObj ({
417
- pathname : router .pathname ,
418
- query : value === "" ? Dict .make () : Dict .fromArray ([("search" , value )]),
419
- })
427
+ let updateQuery = value => setSearchParams ({"search" : value })
420
428
421
429
// When the search term changes, update the router query accordingly.
422
430
React .useEffect (() => {
@@ -440,7 +448,8 @@ let default = (props: props) => {
440
448
<Navigation isOverlayOpen setOverlayOpen />
441
449
<div className = "flex overflow-hidden" >
442
450
<div
443
- className = "flex justify-between min-w-320 px-4 pt-16 lg:align-center w-full lg:px-8 pb-48" >
451
+ className = "flex justify-between min-w-320 px-4 pt-16 lg:align-center w-full lg:px-8 pb-48"
452
+ >
444
453
<MdxProvider components = MarkdownComponents .default >
445
454
<main className = "max-w-1280 w-full flex justify-center" >
446
455
<div className = "w-full max-w-176.25" >
0 commit comments