Skip to content

Commit

Permalink
Fixes wonky selection of item in search result
Browse files Browse the repository at this point in the history
fixes #62
  • Loading branch information
garbas committed Jun 11, 2020
1 parent 2983c00 commit 0fb03a1
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 8 deletions.
27 changes: 24 additions & 3 deletions src/Main.elm
Expand Up @@ -148,7 +148,10 @@ submitQuery old ( new, cmd ) =
( new, cmd )


changeRouteTo : Model -> Url.Url -> ( Model, Cmd Msg )
changeRouteTo :
Model
-> Url.Url
-> ( Model, Cmd Msg )
changeRouteTo model url =
let
newModel =
Expand Down Expand Up @@ -178,12 +181,30 @@ changeRouteTo model url =
( newModel, Browser.Navigation.pushUrl newModel.navKey "/packages" )

Just (Route.Packages channel query show from size) ->
Page.Packages.init channel query show from size
let
modelPage =
case newModel.page of
Packages x ->
Just x

_ ->
Nothing
in
Page.Packages.init channel query show from size modelPage
|> updateWith Packages PackagesMsg newModel
|> submitQuery newModel

Just (Route.Options channel query show from size) ->
Page.Options.init channel query show from size
let
modelPage =
case newModel.page of
Options x ->
Just x

_ ->
Nothing
in
Page.Options.init channel query show from size modelPage
|> updateWith Options OptionsMsg newModel
|> submitQuery newModel

Expand Down
1 change: 1 addition & 0 deletions src/Page/Options.elm
Expand Up @@ -69,6 +69,7 @@ init :
-> Maybe String
-> Maybe Int
-> Maybe Int
-> Maybe Model
-> ( Model, Cmd Msg )
init =
Search.init
Expand Down
1 change: 1 addition & 0 deletions src/Page/Packages.elm
Expand Up @@ -106,6 +106,7 @@ init :
-> Maybe String
-> Maybe Int
-> Maybe Int
-> Maybe Model
-> ( Model, Cmd Msg )
init =
Search.init
Expand Down
30 changes: 25 additions & 5 deletions src/Search.elm
Expand Up @@ -99,14 +99,34 @@ init :
-> Maybe String
-> Maybe Int
-> Maybe Int
-> Maybe (Model a)
-> ( Model a, Cmd msg )
init channel query show from size =
( { channel = Maybe.withDefault "unstable" channel
init channel query show from size model =
let
defaultChannel =
model
|> Maybe.map (\x -> x.channel)
|> Maybe.withDefault "unstable"

defaultFrom =
model
|> Maybe.map (\x -> x.from)
|> Maybe.withDefault 0

defaultSize =
model
|> Maybe.map (\x -> x.size)
|> Maybe.withDefault 15
in
( { channel = Maybe.withDefault defaultChannel channel
, query = query
, result = RemoteData.NotAsked
, result =
model
|> Maybe.map (\x -> x.result)
|> Maybe.withDefault RemoteData.NotAsked
, show = show
, from = Maybe.withDefault 0 from
, size = Maybe.withDefault 15 size
, from = Maybe.withDefault defaultFrom from
, size = Maybe.withDefault defaultSize size
}
, Cmd.none
)
Expand Down

0 comments on commit 0fb03a1

Please sign in to comment.