From e4fec33f2b8d616eff0e91ff3fb8377304d776eb Mon Sep 17 00:00:00 2001 From: Rok Garbas Date: Fri, 21 Aug 2020 22:23:37 +0200 Subject: [PATCH] Dont reload when showing result item details (#152) fixes #148 fixes #142 also adding missing fields to package details view --- src/Main.elm | 25 ++++++++++++++++++++++--- src/Page/Options.elm | 7 ++++++- src/Page/Packages.elm | 8 +++++++- src/Search.elm | 1 + 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/Main.elm b/src/Main.elm index 4ffc49c..dd3a1c0 100644 --- a/src/Main.elm +++ b/src/Main.elm @@ -158,8 +158,15 @@ changeRouteTo : -> ( Model, Cmd Msg ) changeRouteTo model url = let + cleanUrl = + if url.fragment == Just "disabled" then + { url | fragment = Nothing } + + else + url + newModel = - { model | url = url } + { model | url = cleanUrl } maybeRoute = Route.fromUrl url @@ -196,7 +203,13 @@ changeRouteTo model url = in Page.Packages.init channel query show from size sort modelPage |> updateWith Packages PackagesMsg newModel - |> submitQuery newModel + |> (\x -> + if url.fragment == Just "disabled" then + ( Tuple.first x, Cmd.none ) + + else + submitQuery newModel x + ) Just (Route.Options channel query show from size sort) -> let @@ -210,7 +223,13 @@ changeRouteTo model url = in Page.Options.init channel query show from size sort modelPage |> updateWith Options OptionsMsg newModel - |> submitQuery newModel + |> (\x -> + if url.fragment == Just "disabled" then + ( Tuple.first x, Cmd.none ) + + else + submitQuery newModel x + ) update : Msg -> Model -> ( Model, Cmd Msg ) diff --git a/src/Page/Options.elm b/src/Page/Options.elm index b6441ae..32c654e 100644 --- a/src/Page/Options.elm +++ b/src/Page/Options.elm @@ -237,7 +237,12 @@ viewResultItemDetails channel item = wrapWith value in dl [ class "dl-horizontal" ] - [ dt [] [ text "Description" ] + [ dt [] [ text "Name" ] + , dd [] + [ item.source.name + |> asText + ] + , dt [] [ text "Description" ] , dd [] [ item.source.description |> Maybe.withDefault default diff --git a/src/Page/Packages.elm b/src/Page/Packages.elm index f4ec5e0..d051fc3 100644 --- a/src/Page/Packages.elm +++ b/src/Page/Packages.elm @@ -354,7 +354,11 @@ viewResultItemDetails channel item = ] in dl [ class "dl-horizontal" ] - [ dt [] [ text "Install command" ] + [ dt [] [ text "Attribute Name" ] + , dd [] [ asText item.source.attr_name ] + , dt [] [ text "Name" ] + , dd [] [ asText item.source.pname ] + , dt [] [ text "Install command" ] , dd [] [ code [] [ text <| "nix-env -iA nixos." ++ item.source.attr_name ] ] , dt [] [ text <| "Nix expression" ] , dd [] [ withDefault asGithubLink item.source.position ] @@ -366,6 +370,8 @@ viewResultItemDetails channel item = , dd [] [ ul [ class "inline" ] <| List.map showLicence item.source.licenses ] , dt [] [ text "Maintainers" ] , dd [] [ ul [ class "inline" ] <| List.map showMaintainer item.source.maintainers ] + , dt [] [ text "Description" ] + , dd [] [ withDefault asText item.source.description ] , dt [] [ text "Long description" ] , dd [] [ withDefault asText item.source.longDescription ] ] diff --git a/src/Search.elm b/src/Search.elm index b563559..1155764 100644 --- a/src/Search.elm +++ b/src/Search.elm @@ -268,6 +268,7 @@ update path navKey msg model = model.from model.size model.sort + |> (\x -> x ++ "#disabled") |> Browser.Navigation.pushUrl navKey )