Fix browser back button to restore scroll state

Removes the url parameter that was used to identify the card to scroll
to and instead use the id from the internal model.
This commit is contained in:
Eike Kettner
2020-10-18 21:32:37 +02:00
parent ead2e52253
commit 5e0eaf419e
11 changed files with 32 additions and 39 deletions

View File

@ -160,7 +160,7 @@ checkPage flags page =
defaultPage : Flags -> Page
defaultPage flags =
if isSignedIn flags then
HomePage Nothing
HomePage
else
LoginPage Nothing

View File

@ -31,6 +31,7 @@ import Page.UserSettings.Data
import Page.UserSettings.Update
import Ports
import Url
import Util.Maybe
import Util.Update
@ -312,8 +313,8 @@ updateHome lmsg model =
let
mid =
case model.page of
HomePage x ->
x
HomePage ->
Util.Maybe.fromString model.itemDetailModel.detail.item.id
_ ->
Nothing
@ -348,7 +349,7 @@ initPage model_ page =
{ model_ | page = page }
in
case page of
HomePage _ ->
HomePage ->
Util.Update.andThen2
[ updateHome Page.Home.Data.Init
, updateQueue Page.Queue.Data.StopRefresh

View File

@ -16,6 +16,7 @@ import Page.Queue.View
import Page.Register.View
import Page.Upload.View
import Page.UserSettings.View
import Util.Maybe
view : Model -> Html Msg
@ -65,7 +66,7 @@ defaultLayout model =
[ div [ class "ui fluid container" ]
[ a
[ class "header item narrow-item"
, Page.href (HomePage Nothing)
, Page.href HomePage
]
[ img
[ class "image"
@ -84,7 +85,7 @@ defaultLayout model =
, id "main-content"
]
[ case model.page of
HomePage _ ->
HomePage ->
viewHome model
LoginPage _ ->
@ -180,8 +181,8 @@ viewHome model =
let
mid =
case model.page of
HomePage x ->
x
HomePage ->
Util.Maybe.fromString model.itemDetailModel.detail.item.id
_ ->
Nothing
@ -218,7 +219,7 @@ loginInfo model =
]
]
[ menuEntry model
(HomePage Nothing)
HomePage
[ img
[ class "image icon"
, src (model.flags.config.docspellAssetPath ++ "/img/logo-mc-96.png")