@@ -311,31 +311,48 @@ init args defaultNixOSChannel nixosChannels maybeModel =
311
311
q
312
312
313
313
Nothing ->
314
- args. show |> Maybe . withDefault " "
314
+ args. show
315
+ |> Maybe . withDefault defaultSearchArgs. query
315
316
, result = getField . result RemoteData . NotAsked
316
317
, show = args. show
317
318
, from =
318
319
args. from
319
- |> Maybe . withDefault 0
320
+ |> Maybe . withDefault defaultSearchArgs . from
320
321
, size =
321
322
args. size
322
- |> Maybe . withDefault 50
323
+ |> Maybe . withDefault defaultSearchArgs . size
323
324
, buckets = args. buckets
324
325
, sort =
325
326
args. sort
326
327
|> Maybe . andThen fromSortId
327
- |> Maybe . withDefault Relevance
328
+ |> Maybe . withDefault defaultSearchArgs . sort
328
329
, showSort = False
329
330
, showInstallDetails = Unset
330
331
, searchType =
331
332
args. type_
332
- |> Maybe . withDefault Route . PackageSearch
333
+ |> Maybe . withDefault defaultSearchArgs . searchType
333
334
}
334
335
|> ensureLoading nixosChannels
335
336
, Browser . Dom . focus " search-query-input" |> Task . attempt ( \ _ -> NoOp )
336
337
)
337
338
338
339
340
+ defaultSearchArgs :
341
+ { query : String
342
+ , from : Int
343
+ , size : Int
344
+ , sort : Sort
345
+ , searchType : SearchType
346
+ }
347
+ defaultSearchArgs =
348
+ { query = " "
349
+ , from = 0
350
+ , size = 50
351
+ , sort = Relevance
352
+ , searchType = Route . PackageSearch
353
+ }
354
+
355
+
339
356
shouldLoad :
340
357
Model a b
341
358
-> Bool
@@ -532,21 +549,29 @@ createUrl :
532
549
-> Model a b
533
550
-> String
534
551
createUrl toRoute model =
552
+ let
553
+ justIfNotDefault : t -> t -> Maybe t
554
+ justIfNotDefault fromModel fromDefault =
555
+ if fromModel == fromDefault then
556
+ Nothing
557
+
558
+ else
559
+ Just fromModel
560
+ in
535
561
Route . routeToString <|
536
562
toRoute
537
563
{ channel = Just model. channel
538
564
, query =
539
- if String . isEmpty model. query then
540
- Nothing
541
-
542
- else
543
- Just ( Route . SearchQuery . toSearchQuery model. query)
565
+ justIfNotDefault model. query defaultSearchArgs. query
566
+ |> Maybe . map Route . SearchQuery . toSearchQuery
544
567
, show = model. show
545
- , from = Just model. from
546
- , size = Just model. size
568
+ , from = justIfNotDefault model. from defaultSearchArgs . from
569
+ , size = justIfNotDefault model. size defaultSearchArgs . size
547
570
, buckets = model. buckets
548
- , sort = Just <| toSortId model. sort
549
- , type_ = Just model. searchType
571
+ , sort =
572
+ justIfNotDefault model. sort defaultSearchArgs. sort
573
+ |> Maybe . map toSortId
574
+ , type_ = justIfNotDefault model. searchType defaultSearchArgs. searchType
550
575
}
551
576
552
577
0 commit comments