Outline share detail page

This commit is contained in:
eikek
2021-10-06 11:04:18 +02:00
parent 1a10216e3d
commit b6187bb88d
21 changed files with 622 additions and 157 deletions

View File

@ -33,6 +33,7 @@ import Page.NewInvite.Data
import Page.Queue.Data
import Page.Register.Data
import Page.Share.Data
import Page.ShareDetail.Data
import Page.Upload.Data
import Page.UserSettings.Data
import Url exposing (Url)
@ -54,6 +55,7 @@ type alias Model =
, newInviteModel : Page.NewInvite.Data.Model
, itemDetailModel : Page.ItemDetail.Data.Model
, shareModel : Page.Share.Data.Model
, shareDetailModel : Page.ShareDetail.Data.Model
, navMenuOpen : Bool
, userMenuOpen : Bool
, subs : Sub Msg
@ -88,7 +90,10 @@ init key url flags_ settings =
Page.Login.Data.init flags (Page.loginPageReferrer page)
( shm, shc ) =
Page.Share.Data.init (Page.shareId page) flags
Page.Share.Data.init (Page.pageShareId page) flags
( sdm, sdc ) =
Page.ShareDetail.Data.init (Page.pageShareDetail page) flags
homeViewMode =
if settings.searchMenuVisible then
@ -112,6 +117,7 @@ init key url flags_ settings =
, newInviteModel = Page.NewInvite.Data.emptyModel
, itemDetailModel = Page.ItemDetail.Data.emptyModel
, shareModel = shm
, shareDetailModel = sdm
, navMenuOpen = False
, userMenuOpen = False
, subs = Sub.none
@ -127,6 +133,7 @@ init key url flags_ settings =
, Cmd.map CollSettingsMsg csc
, Cmd.map LoginMsg loginc
, Cmd.map ShareMsg shc
, Cmd.map ShareDetailMsg sdc
]
)
@ -170,6 +177,7 @@ type Msg
| NewInviteMsg Page.NewInvite.Data.Msg
| ItemDetailMsg Page.ItemDetail.Data.Msg
| ShareMsg Page.Share.Data.Msg
| ShareDetailMsg Page.ShareDetail.Data.Msg
| Logout
| LogoutResp (Result Http.Error ())
| SessionCheckResp (Result Http.Error AuthResult)

View File

@ -36,6 +36,8 @@ import Page.Register.Data
import Page.Register.Update
import Page.Share.Data
import Page.Share.Update
import Page.ShareDetail.Data
import Page.ShareDetail.Update
import Page.Upload.Data
import Page.Upload.Update
import Page.UserSettings.Data
@ -119,6 +121,9 @@ updateWithSub msg model =
ShareMsg lm ->
updateShare lm model
ShareDetailMsg lm ->
updateShareDetail lm model
LoginMsg lm ->
updateLogin lm model
@ -318,9 +323,26 @@ applyClientSettings model settings =
{ model | uiSettings = settings }
updateShareDetail : Page.ShareDetail.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateShareDetail lmsg model =
case Page.pageShareDetail model.page of
Just ( shareId, itemId ) ->
let
( m, c ) =
Page.ShareDetail.Update.update shareId itemId model.flags lmsg model.shareDetailModel
in
( { model | shareDetailModel = m }
, Cmd.map ShareDetailMsg c
, Sub.none
)
Nothing ->
( model, Cmd.none, Sub.none )
updateShare : Page.Share.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateShare lmsg model =
case Page.shareId model.page of
case Page.pageShareId model.page of
Just id ->
let
result =
@ -593,3 +615,15 @@ initPage model_ page =
SharePage _ ->
( model, Cmd.none, Sub.none )
ShareDetailPage _ _ ->
case model_.page of
SharePage _ ->
let
verifyResult =
model.shareModel.verifyResult
in
updateShareDetail (Page.ShareDetail.Data.VerifyResp (Ok verifyResult)) model
_ ->
( model, Cmd.none, Sub.none )

View File

@ -28,6 +28,7 @@ import Page.NewInvite.View2 as NewInvite
import Page.Queue.View2 as Queue
import Page.Register.View2 as Register
import Page.Share.View as Share
import Page.ShareDetail.View as ShareDetail
import Page.Upload.View2 as Upload
import Page.UserSettings.View2 as UserSettings
import Styles as S
@ -166,6 +167,9 @@ mainContent model =
SharePage id ->
viewShare texts id model
ShareDetailPage shareId itemId ->
viewShareDetail texts shareId itemId model
)
@ -434,11 +438,33 @@ viewShare texts shareId model =
model.flags
model.version
model.uiSettings
shareId
model.shareModel
)
]
viewShareDetail : Messages -> String -> String -> Model -> List (Html Msg)
viewShareDetail texts shareId itemId model =
[ Html.map ShareDetailMsg
(ShareDetail.viewSidebar texts.shareDetail
model.sidebarVisible
model.flags
model.uiSettings
model.shareDetailModel
)
, Html.map ShareDetailMsg
(ShareDetail.viewContent texts.shareDetail
model.flags
model.uiSettings
model.version
shareId
itemId
model.shareDetailModel
)
]
viewHome : Messages -> Model -> List (Html Msg)
viewHome texts model =
[ Html.map HomeMsg