Scroll to the current item when going back from detail

The list view now supports an item id that will be scrolled to and is
highlighted with a shadow. When going back from detail view this is
now used to scroll to the currently viewed item.
This commit is contained in:
Eike Kettner
2020-09-14 18:43:04 +02:00
parent 913bfb611c
commit 3852c69da1
15 changed files with 131 additions and 52 deletions

View File

@ -24,7 +24,7 @@ import Util.Maybe
type Page
= HomePage
= HomePage (Maybe String)
| LoginPage (Maybe Page)
| ManageDataPage
| CollectiveSettingPage
@ -39,7 +39,7 @@ type Page
isSecured : Page -> Bool
isSecured page =
case page of
HomePage ->
HomePage _ ->
True
LoginPage _ ->
@ -88,7 +88,7 @@ loginPage p =
pageName : Page -> String
pageName page =
case page of
HomePage ->
HomePage _ ->
"Home"
LoginPage _ ->
@ -147,7 +147,10 @@ uploadId page =
pageToString : Page -> String
pageToString page =
case page of
HomePage ->
HomePage (Just id) ->
"/app/home?item=" ++ id
HomePage Nothing ->
"/app/home"
LoginPage referer ->
@ -227,7 +230,12 @@ pathPrefix =
parser : Parser (Page -> a) a
parser =
oneOf
[ Parser.map HomePage (oneOf [ Parser.top, s pathPrefix </> s "home" ])
[ Parser.map HomePage
(oneOf
[ Parser.top <?> itemQuery
, s pathPrefix </> s "home" <?> itemQuery
]
)
, Parser.map LoginPage (s pathPrefix </> s "login" <?> pageQuery)
, Parser.map ManageDataPage (s pathPrefix </> s "managedata")
, Parser.map CollectiveSettingPage (s pathPrefix </> s "csettings")
@ -263,3 +271,8 @@ pageQuery =
in
Query.string "r"
|> Query.map parsePage
itemQuery : Query.Parser (Maybe String)
itemQuery =
Query.string "item"