Merge pull request #381 from eikek/fix-search-scroll

Fix search scroll
This commit is contained in:
mergify[bot] 2020-10-22 22:45:54 +00:00 committed by GitHub
commit c2d8f2b438
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 36 deletions

View File

@ -178,16 +178,7 @@ viewLogin model =
viewHome : Model -> Html Msg
viewHome model =
let
mid =
case model.page of
HomePage ->
Util.Maybe.fromString model.itemDetailModel.detail.item.id
_ ->
Nothing
in
Html.map HomeMsg (Page.Home.View.view mid model.flags model.uiSettings model.homeModel)
Html.map HomeMsg (Page.Home.View.view model.flags model.uiSettings model.homeModel)
menuEntry : Model -> Page -> List (Html Msg) -> Html Msg

View File

@ -89,7 +89,7 @@ type Msg
| SearchMenuMsg Comp.SearchMenu.Msg
| ResetSearch
| ItemCardListMsg Comp.ItemCardList.Msg
| ItemSearchResp (Result Http.Error ItemLightList)
| ItemSearchResp Bool (Result Http.Error ItemLightList)
| ItemSearchAddResp (Result Http.Error ItemLightList)
| DoSearch
| ToggleSearchMenu
@ -136,21 +136,21 @@ itemNav id model =
}
doSearchCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg
doSearchCmd flags settings offset model =
doSearchCmd : Flags -> UiSettings -> Int -> Bool -> Model -> Cmd Msg
doSearchCmd flags settings offset scroll model =
case model.searchType of
BasicSearch ->
doSearchDefaultCmd flags settings offset model
doSearchDefaultCmd flags settings offset scroll model
ContentSearch ->
doSearchDefaultCmd flags settings offset model
doSearchDefaultCmd flags settings offset scroll model
ContentOnlySearch ->
doSearchIndexCmd flags settings offset model
doSearchIndexCmd flags settings offset scroll model
doSearchDefaultCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg
doSearchDefaultCmd flags settings offset model =
doSearchDefaultCmd : Flags -> UiSettings -> Int -> Bool -> Model -> Cmd Msg
doSearchDefaultCmd flags settings offset scroll model =
let
smask =
Comp.SearchMenu.getItemSearch model.searchMenuModel
@ -162,14 +162,14 @@ doSearchDefaultCmd flags settings offset model =
}
in
if offset == 0 then
Api.itemSearch flags mask ItemSearchResp
Api.itemSearch flags mask (ItemSearchResp scroll)
else
Api.itemSearch flags mask ItemSearchAddResp
doSearchIndexCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg
doSearchIndexCmd flags settings offset model =
doSearchIndexCmd : Flags -> UiSettings -> Int -> Bool -> Model -> Cmd Msg
doSearchIndexCmd flags settings offset scroll model =
case model.contentOnlySearch of
Just q ->
let
@ -180,7 +180,7 @@ doSearchIndexCmd flags settings offset model =
}
in
if offset == 0 then
Api.itemIndexSearch flags mask ItemSearchResp
Api.itemIndexSearch flags mask (ItemSearchResp scroll)
else
Api.itemIndexSearch flags mask ItemSearchAddResp
@ -195,7 +195,7 @@ doSearchIndexCmd flags settings offset model =
mask =
{ emptyMask | limit = settings.itemSearchPageSize }
in
Api.itemSearch flags mask ItemSearchResp
Api.itemSearch flags mask (ItemSearchResp scroll)
resultsBelowLimit : UiSettings -> Model -> Bool

View File

@ -26,7 +26,7 @@ update mId key flags settings msg model =
Init ->
Util.Update.andThen2
[ update mId key flags settings (SearchMenuMsg Comp.SearchMenu.Init)
, doSearch flags settings
, doSearch flags settings True
]
model
@ -61,7 +61,7 @@ update mId key flags settings msg model =
( m2, c2, s2 ) =
if nextState.stateChange && not model.searchInProgress then
doSearch flags settings newModel
doSearch flags settings False newModel
else
withSub ( newModel, Cmd.none )
@ -91,7 +91,7 @@ update mId key flags settings msg model =
, Cmd.batch [ Cmd.map ItemCardListMsg result.cmd ]
)
ItemSearchResp (Ok list) ->
ItemSearchResp scroll (Ok list) ->
let
noff =
settings.itemSearchPageSize
@ -105,7 +105,11 @@ update mId key flags settings msg model =
in
Util.Update.andThen2
[ update mId key flags settings (ItemCardListMsg (Comp.ItemCardList.SetResults list))
, scrollToCard mId
, if scroll then
scrollToCard mId
else
\next -> ( next, Cmd.none, Sub.none )
]
m
@ -124,7 +128,6 @@ update mId key flags settings msg model =
in
Util.Update.andThen2
[ update mId key flags settings (ItemCardListMsg (Comp.ItemCardList.AddResults list))
, scrollToCard mId
]
m
@ -136,7 +139,7 @@ update mId key flags settings msg model =
, Cmd.none
)
ItemSearchResp (Err _) ->
ItemSearchResp _ (Err _) ->
withSub
( { model
| searchInProgress = False
@ -153,7 +156,7 @@ update mId key flags settings msg model =
withSub ( model, Cmd.none )
else
doSearch flags settings nm
doSearch flags settings False nm
ToggleSearchMenu ->
withSub
@ -272,8 +275,8 @@ scrollToCard mId model =
( model, Cmd.none, Sub.none )
doSearch : Flags -> UiSettings -> Model -> ( Model, Cmd Msg, Sub Msg )
doSearch flags settings model =
doSearch : Flags -> UiSettings -> Bool -> Model -> ( Model, Cmd Msg, Sub Msg )
doSearch flags settings scroll model =
let
stype =
if
@ -289,7 +292,7 @@ doSearch flags settings model =
{ model | searchType = stype }
searchCmd =
doSearchCmd flags settings 0 model_
doSearchCmd flags settings 0 scroll model_
( newThrottle, cmd ) =
Throttle.try searchCmd model.throttle
@ -308,7 +311,7 @@ doSearchMore : Flags -> UiSettings -> Model -> ( Model, Cmd Msg )
doSearchMore flags settings model =
let
cmd =
doSearchCmd flags settings model.searchOffset model
doSearchCmd flags settings model.searchOffset False model
in
( { model | moreInProgress = True }
, cmd

View File

@ -14,8 +14,8 @@ import Page.Home.Data exposing (..)
import Util.Html
view : Maybe String -> Flags -> UiSettings -> Model -> Html Msg
view current flags settings model =
view : Flags -> UiSettings -> Model -> Html Msg
view flags settings model =
div [ class "home-page ui padded grid" ]
[ div
[ classList