Navigation Menu

Skip to content

Commit

Permalink
Preserve search options between packages and options search page
Browse files Browse the repository at this point in the history
  • Loading branch information
garbas committed Jun 10, 2020
1 parent 9413e66 commit 81c11b3
Showing 1 changed file with 30 additions and 7 deletions.
37 changes: 30 additions & 7 deletions src/Main.elm
Expand Up @@ -28,10 +28,10 @@ import Html.Attributes
import Page.Home
import Page.Options
import Page.Packages
import RemoteData
import Route
import Search
import Url
import Url.Builder



Expand Down Expand Up @@ -113,7 +113,7 @@ submitQuery :
-> ( Model, Cmd Msg )
submitQuery old ( new, cmd ) =
let
triggerSearch oldModel newModel msg makeRequest =
triggerSearch _ newModel msg makeRequest =
if newModel.query /= Nothing then
( new
, Cmd.batch
Expand Down Expand Up @@ -241,7 +241,7 @@ view model =
[ a [ class "brand", href "https://search.nixos.org" ]
[ img [ src "https://nixos.org/logo/nix-wiki.png", class "logo" ] []
]
, viewNavigation model.url
, viewNavigation model.page model.url
]
]
]
Expand All @@ -263,13 +263,36 @@ view model =
]


viewNavigation : Url.Url -> Html Msg
viewNavigation url =
viewNavigation : Page -> Url.Url -> Html Msg
viewNavigation page url =
let
preserveSearchOptions =
case page of
Packages model ->
model.query
|> Maybe.map (\q -> [ Url.Builder.string "query" q ])
|> Maybe.withDefault []
|> List.append [ Url.Builder.string "channel" model.channel ]

Options model ->
model.query
|> Maybe.map (\q -> [ Url.Builder.string "query" q ])
|> Maybe.withDefault []
|> List.append [ Url.Builder.string "channel" model.channel ]

_ ->
[]

createUrl path =
[]
|> List.append preserveSearchOptions
|> Url.Builder.absolute [ path ]
in
ul [ class "nav" ]
(List.map
(viewNavigationItem url)
[ ( "/packages", "Packages" )
, ( "/options", "Options" )
[ ( createUrl "packages", "Packages" )
, ( createUrl "options", "Options" )
]
)

Expand Down

0 comments on commit 81c11b3

Please sign in to comment.