Share page skeleton

This commit is contained in:
eikek
2021-10-03 01:32:56 +02:00
parent aa21e7a74c
commit 97922340d9
10 changed files with 231 additions and 7 deletions

View File

@ -32,6 +32,7 @@ import Page.ManageData.Data
import Page.NewInvite.Data
import Page.Queue.Data
import Page.Register.Data
import Page.Share.Data
import Page.Upload.Data
import Page.UserSettings.Data
import Url exposing (Url)
@ -52,6 +53,7 @@ type alias Model =
, uploadModel : Page.Upload.Data.Model
, newInviteModel : Page.NewInvite.Data.Model
, itemDetailModel : Page.ItemDetail.Data.Model
, shareModel : Page.Share.Data.Model
, navMenuOpen : Bool
, userMenuOpen : Bool
, subs : Sub Msg
@ -85,6 +87,9 @@ init key url flags_ settings =
( loginm, loginc ) =
Page.Login.Data.init flags (Page.loginPageReferrer page)
( shm, shc ) =
Page.Share.Data.init (Page.shareId page) flags
homeViewMode =
if settings.searchMenuVisible then
Page.Home.Data.SearchView
@ -106,6 +111,7 @@ init key url flags_ settings =
, uploadModel = Page.Upload.Data.emptyModel
, newInviteModel = Page.NewInvite.Data.emptyModel
, itemDetailModel = Page.ItemDetail.Data.emptyModel
, shareModel = shm
, navMenuOpen = False
, userMenuOpen = False
, subs = Sub.none
@ -120,6 +126,7 @@ init key url flags_ settings =
, Cmd.map ManageDataMsg mdc
, Cmd.map CollSettingsMsg csc
, Cmd.map LoginMsg loginc
, Cmd.map ShareMsg shc
]
)
@ -162,6 +169,7 @@ type Msg
| UploadMsg Page.Upload.Data.Msg
| NewInviteMsg Page.NewInvite.Data.Msg
| ItemDetailMsg Page.ItemDetail.Data.Msg
| ShareMsg Page.Share.Data.Msg
| Logout
| LogoutResp (Result Http.Error ())
| SessionCheckResp (Result Http.Error AuthResult)

View File

@ -34,6 +34,8 @@ import Page.Queue.Data
import Page.Queue.Update
import Page.Register.Data
import Page.Register.Update
import Page.Share.Data
import Page.Share.Update
import Page.Upload.Data
import Page.Upload.Update
import Page.UserSettings.Data
@ -114,6 +116,9 @@ updateWithSub msg model =
HomeMsg lm ->
updateHome lm model
ShareMsg lm ->
updateShare lm model
LoginMsg lm ->
updateLogin lm model
@ -313,6 +318,23 @@ applyClientSettings model settings =
{ model | uiSettings = settings }
updateShare : Page.Share.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateShare lmsg model =
case Page.shareId model.page of
Just id ->
let
result =
Page.Share.Update.update model.flags id lmsg model.shareModel
in
( { model | shareModel = result.model }
, Cmd.map ShareMsg result.cmd
, Sub.map ShareMsg result.sub
)
Nothing ->
( model, Cmd.none, Sub.none )
updateItemDetail : Page.ItemDetail.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateItemDetail lmsg model =
let
@ -568,3 +590,6 @@ initPage model_ page =
, updateQueue Page.Queue.Data.StopRefresh
]
model
SharePage _ ->
( model, Cmd.none, Sub.none )

View File

@ -27,6 +27,7 @@ import Page.ManageData.View2 as ManageData
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.Upload.View2 as Upload
import Page.UserSettings.View2 as UserSettings
import Styles as S
@ -41,13 +42,9 @@ view model =
topNavbar : Model -> Html Msg
topNavbar model =
case model.flags.account of
case Data.Flags.getAccount model.flags of
Just acc ->
if acc.success then
topNavUser acc model
else
topNavAnon model
topNavUser acc model
Nothing ->
topNavAnon model
@ -86,7 +83,16 @@ topNavAnon model =
[ id "top-nav"
, class styleTopNav
]
[ headerNavItem model
[ B.genericButton
{ label = ""
, icon = "fa fa-bars"
, handler = onClick ToggleSidebar
, disabled = not (Page.hasSidebar model.page)
, attrs = [ href "#" ]
, baseStyle = "font-bold inline-flex items-center px-4 py-2"
, activeStyle = "hover:bg-blue-200 dark:hover:bg-bluegray-800 w-12"
}
, headerNavItem model
, div [ class "flex flex-grow justify-end" ]
[ langMenu model
, a
@ -157,6 +163,9 @@ mainContent model =
ItemDetailPage id ->
viewItemDetail texts id model
SharePage id ->
viewShare texts id model
)
@ -411,6 +420,24 @@ dropdownMenu =
" absolute right-0 bg-white dark:bg-bluegray-800 border dark:border-bluegray-700 dark:text-bluegray-300 shadow-lg opacity-1 transition duration-200 min-w-max "
viewShare : Messages -> String -> Model -> List (Html Msg)
viewShare texts shareId model =
[ Html.map ShareMsg
(Share.viewSidebar texts.share
model.sidebarVisible
model.flags
model.uiSettings
model.shareModel
)
, Html.map ShareMsg
(Share.viewContent texts.share
model.flags
model.uiSettings
model.shareModel
)
]
viewHome : Messages -> Model -> List (Html Msg)
viewHome texts model =
[ Html.map HomeMsg