mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-03-25 16:45:05 +00:00
Only scroll to the last visited item when initializing the page
When searching again on that page, scrolling/highlighting should not happen. It now happens whenever coming to this page (not only when going back from detail view). Fixes: #373
This commit is contained in:
parent
3e752487e4
commit
6ea9193b5e
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user