From 28b454660703a417d174636ed44e11973780828c Mon Sep 17 00:00:00 2001 From: eikek Date: Fri, 12 Nov 2021 23:21:39 +0100 Subject: [PATCH] Hide sidebar by default on small devices Closes: #1169 --- modules/restserver/src/main/templates/index.html | 1 + modules/webapp/src/main/elm/App/Data.elm | 2 +- modules/webapp/src/main/elm/App/Update.elm | 7 +++++-- modules/webapp/src/main/elm/Data/Flags.elm | 1 + 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/restserver/src/main/templates/index.html b/modules/restserver/src/main/templates/index.html index 2a61f28c..a94abf75 100644 --- a/modules/restserver/src/main/templates/index.html +++ b/modules/restserver/src/main/templates/index.html @@ -58,6 +58,7 @@ var elmFlags = { "account": account, "pdfSupported": pdfSupported, + "innerWidth": window.innerWidth, "config": {{{flagsJson}}} }; diff --git a/modules/webapp/src/main/elm/App/Data.elm b/modules/webapp/src/main/elm/App/Data.elm index 4fcd485d..2aadcab4 100644 --- a/modules/webapp/src/main/elm/App/Data.elm +++ b/modules/webapp/src/main/elm/App/Data.elm @@ -125,7 +125,7 @@ init key url flags_ settings = , userMenuOpen = False , subs = Sub.none , uiSettings = settings - , sidebarVisible = settings.sideMenuVisible + , sidebarVisible = flags.innerWidth > 768 && settings.sideMenuVisible , anonymousTheme = Data.UiTheme.Light , anonymousUiLang = Messages.UiLanguage.English , langMenuOpen = False diff --git a/modules/webapp/src/main/elm/App/Update.elm b/modules/webapp/src/main/elm/App/Update.elm index 24a3ab41..db44d2c7 100644 --- a/modules/webapp/src/main/elm/App/Update.elm +++ b/modules/webapp/src/main/elm/App/Update.elm @@ -14,7 +14,7 @@ import Api import App.Data exposing (..) import Browser exposing (UrlRequest(..)) import Browser.Navigation as Nav -import Data.Flags +import Data.Flags exposing (Flags) import Data.ServerEvent exposing (ServerEvent(..)) import Data.UiSettings exposing (UiSettings) import Data.UiTheme @@ -349,10 +349,13 @@ applyClientSettings texts model settings = let setTheme = Ports.setUiTheme settings.uiTheme + + flags = + model.flags in Util.Update.andThen2 [ \m -> - ( { m | sidebarVisible = settings.sideMenuVisible } + ( { m | sidebarVisible = flags.innerWidth > 768 && settings.sideMenuVisible } , setTheme , Sub.none ) diff --git a/modules/webapp/src/main/elm/Data/Flags.elm b/modules/webapp/src/main/elm/Data/Flags.elm index 5ebfa9c7..9837e6e8 100644 --- a/modules/webapp/src/main/elm/Data/Flags.elm +++ b/modules/webapp/src/main/elm/Data/Flags.elm @@ -42,6 +42,7 @@ type alias Config = type alias Flags = { account : Maybe AuthResult , pdfSupported : Bool + , innerWidth : Int , config : Config }