From c977ded5bafb9c60ff6c9655005c5b6eefdf4a54 Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Mon, 31 Dec 2018 16:16:20 -0800 Subject: [PATCH] ui: Reimplement session storage in Main --- ui/src/Data/Session.elm | 1 + ui/src/Main.elm | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ui/src/Data/Session.elm b/ui/src/Data/Session.elm index c90fe91..6d18aed 100644 --- a/ui/src/Data/Session.elm +++ b/ui/src/Data/Session.elm @@ -7,6 +7,7 @@ module Data.Session exposing , decoder , disableRouting , enableRouting + , encode , init , initError , showFlash diff --git a/ui/src/Main.elm b/ui/src/Main.elm index 87d36cc..543d280 100644 --- a/ui/src/Main.elm +++ b/ui/src/Main.elm @@ -130,7 +130,30 @@ update msg model = let session = getSession model + + ( newModel, cmd ) = + updateMain msg model session + + newSession = + getSession newModel in + if session.persistent == newSession.persistent then + ( newModel, cmd ) + + else + -- Store updated persistent session. + ( newModel + , Cmd.batch + [ Ports.storeSession (Session.encode newSession.persistent) + , cmd + ] + ) + + +{-| Handle global/navbar related msgs. +-} +updateMain : Msg -> Model -> Session -> ( Model, Cmd Msg ) +updateMain msg model session = case msg of LinkClicked req -> case req of @@ -197,7 +220,7 @@ update msg model = updatePage msg model -{-| Delegates incoming messages to their respective sub-pages. +{-| Delegate incoming messages to their respective sub-pages. -} updatePage : Msg -> Model -> ( Model, Cmd Msg ) updatePage msg model =