From 7e89c73225446de77fd64b18d8f0ca0284544702 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B8jberg?= Date: Wed, 9 Aug 2023 11:36:41 -0400 Subject: [PATCH] Rename Env to AppContext --- src/UnisonLocal.elm | 2 +- src/UnisonLocal/App.elm | 50 ++++++++-------- src/UnisonLocal/{Env.elm => AppContext.elm} | 14 ++--- src/UnisonLocal/Page/CodePage.elm | 66 ++++++++++----------- src/UnisonLocal/Page/CodePageContent.elm | 8 +-- src/UnisonLocal/Page/HomePage.elm | 6 +- src/UnisonLocal/Page/NonProjectCodePage.elm | 26 ++++---- src/UnisonLocal/Page/ProjectBranchPage.elm | 26 ++++---- src/UnisonLocal/PreApp.elm | 14 ++--- 9 files changed, 106 insertions(+), 106 deletions(-) rename src/UnisonLocal/{Env.elm => AppContext.elm} (72%) diff --git a/src/UnisonLocal.elm b/src/UnisonLocal.elm index c8ef993..444f1d4 100644 --- a/src/UnisonLocal.elm +++ b/src/UnisonLocal.elm @@ -2,7 +2,7 @@ module UnisonLocal exposing (..) import Browser import UnisonLocal.App as App -import UnisonLocal.Env exposing (Flags) +import UnisonLocal.AppContext exposing (Flags) import UnisonLocal.PreApp as PreApp diff --git a/src/UnisonLocal/App.elm b/src/UnisonLocal/App.elm index 4bec8c6..f1679d0 100644 --- a/src/UnisonLocal/App.elm +++ b/src/UnisonLocal/App.elm @@ -10,9 +10,9 @@ import UI import UI.KeyboardShortcut as KeyboardShortcut import UI.KeyboardShortcut.Key as Key exposing (Key(..)) import UI.Modal as Modal +import UnisonLocal.AppContext exposing (AppContext) import UnisonLocal.AppDocument as AppDocument import UnisonLocal.AppHeader as AppHeader -import UnisonLocal.Env exposing (Env) import UnisonLocal.Page.HomePage as HomePage import UnisonLocal.Page.NonProjectCodePage as NonProjectCodePage import UnisonLocal.Page.NotFoundPage as NotFoundPage @@ -40,35 +40,35 @@ type AppModal type alias Model = { page : Page - , env : Env + , appContext : AppContext , openedAppHeaderMenu : AppHeader.OpenedAppHeaderMenu , appModal : AppModal } -init : Env -> Route -> ( Model, Cmd Msg ) -init env route = +init : AppContext -> Route -> ( Model, Cmd Msg ) +init appContext route = let ( page, cmd ) = case route of Route.Home -> let ( home, homeCmd ) = - HomePage.init env + HomePage.init appContext in ( Home home, Cmd.map HomePageMsg homeCmd ) Route.ProjectBranch projectName branchRef codeRoute -> let ( project, projectBranchCmd ) = - ProjectBranchPage.init env projectName branchRef codeRoute + ProjectBranchPage.init appContext projectName branchRef codeRoute in ( ProjectBranch projectName branchRef codeRoute project, Cmd.map ProjectBranchPageMsg projectBranchCmd ) Route.NonProjectCode codeRoute -> let ( nonProjectCode, nonProjectCodeCmd ) = - NonProjectCodePage.init env codeRoute + NonProjectCodePage.init appContext codeRoute in ( NonProjectCode codeRoute nonProjectCode, Cmd.map NonProjectCodePageMsg nonProjectCodeCmd ) @@ -77,7 +77,7 @@ init env route = model = { page = page - , env = env + , appContext = appContext , openedAppHeaderMenu = AppHeader.NoneOpened , appModal = NoModal } @@ -104,12 +104,12 @@ type Msg update : Msg -> Model -> ( Model, Cmd Msg ) -update msg ({ env } as model) = +update msg ({ appContext } as model) = case ( model.page, msg ) of ( _, LinkClicked urlRequest ) -> case urlRequest of Browser.Internal url -> - ( model, Nav.pushUrl env.navKey (Url.toString url) ) + ( model, Nav.pushUrl appContext.navKey (Url.toString url) ) -- External links are handled via target blank and never end up -- here @@ -119,14 +119,14 @@ update msg ({ env } as model) = ( _, UrlChanged url ) -> let route = - Route.fromUrl env.basePath url + Route.fromUrl appContext.basePath url ( m, c ) = case route of Route.Home -> let ( home, cmd ) = - HomePage.init model.env + HomePage.init model.appContext in ( { model | page = Home home }, Cmd.map HomePageMsg cmd ) @@ -136,21 +136,21 @@ update msg ({ env } as model) = if ProjectName.equals currentProjectName projectName && BranchRef.equals currentBranchRef branchRef then let ( project, cmd ) = - ProjectBranchPage.updateSubPage model.env projectName branchRef projectModel codeRoute + ProjectBranchPage.updateSubPage model.appContext projectName branchRef projectModel codeRoute in ( { model | page = ProjectBranch projectName branchRef codeRoute project }, Cmd.map ProjectBranchPageMsg cmd ) else let ( project, cmd ) = - ProjectBranchPage.init model.env projectName branchRef codeRoute + ProjectBranchPage.init model.appContext projectName branchRef codeRoute in ( { model | page = ProjectBranch projectName branchRef codeRoute project }, Cmd.map ProjectBranchPageMsg cmd ) _ -> let ( project, cmd ) = - ProjectBranchPage.init model.env projectName branchRef codeRoute + ProjectBranchPage.init model.appContext projectName branchRef codeRoute in ( { model | page = ProjectBranch projectName branchRef codeRoute project }, Cmd.map ProjectBranchPageMsg cmd ) @@ -159,14 +159,14 @@ update msg ({ env } as model) = NonProjectCode _ npcModel -> let ( npc, cmd ) = - NonProjectCodePage.updateSubPage model.env npcModel codeRoute + NonProjectCodePage.updateSubPage model.appContext npcModel codeRoute in ( { model | page = NonProjectCode codeRoute npc }, Cmd.map NonProjectCodePageMsg cmd ) _ -> let ( npc, cmd ) = - NonProjectCodePage.init model.env codeRoute + NonProjectCodePage.init model.appContext codeRoute in ( { model | page = NonProjectCode codeRoute npc }, Cmd.map NonProjectCodePageMsg cmd ) @@ -196,21 +196,21 @@ update msg ({ env } as model) = ( Home m, HomePageMsg cMsg ) -> let ( home, cmd ) = - HomePage.update env cMsg m + HomePage.update appContext cMsg m in ( { model | page = Home home }, Cmd.map HomePageMsg cmd ) ( ProjectBranch projectName branchRef codeRoute m, ProjectBranchPageMsg pMsg ) -> let ( projectBranch, cmd ) = - ProjectBranchPage.update env projectName branchRef codeRoute pMsg m + ProjectBranchPage.update appContext projectName branchRef codeRoute pMsg m in ( { model | page = ProjectBranch projectName branchRef codeRoute projectBranch }, Cmd.map ProjectBranchPageMsg cmd ) ( NonProjectCode codeRoute m, NonProjectCodePageMsg npcMsg ) -> let ( nonProjectCode, cmd ) = - NonProjectCodePage.update env codeRoute npcMsg m + NonProjectCodePage.update appContext codeRoute npcMsg m in ( { model | page = NonProjectCode codeRoute nonProjectCode }, Cmd.map NonProjectCodePageMsg cmd ) @@ -311,8 +311,8 @@ viewKeyboardShortcutsModal os = view : Model -> Browser.Document Msg view model = let - env = - model.env + appContext = + model.appContext appHeaderContext = { openedAppHeaderMenu = model.openedAppHeaderMenu @@ -326,10 +326,10 @@ view model = AppDocument.map HomePageMsg (HomePage.view home) ProjectBranch projectName branchRef _ projectModel -> - AppDocument.map ProjectBranchPageMsg (ProjectBranchPage.view env projectName branchRef projectModel) + AppDocument.map ProjectBranchPageMsg (ProjectBranchPage.view appContext projectName branchRef projectModel) NonProjectCode _ nonProjectCodeModel -> - AppDocument.map NonProjectCodePageMsg (NonProjectCodePage.view env nonProjectCodeModel) + AppDocument.map NonProjectCodePageMsg (NonProjectCodePage.view appContext nonProjectCodeModel) NotFound -> NotFoundPage.view @@ -341,6 +341,6 @@ view model = appDocument KeyboardShortcuts -> - { appDocument | modal = Just (viewKeyboardShortcutsModal env.operatingSystem) } + { appDocument | modal = Just (viewKeyboardShortcutsModal appContext.operatingSystem) } in AppDocument.view appHeaderContext appDocumentWithModal diff --git a/src/UnisonLocal/Env.elm b/src/UnisonLocal/AppContext.elm similarity index 72% rename from src/UnisonLocal/Env.elm rename to src/UnisonLocal/AppContext.elm index 1919b8f..2fdebf6 100644 --- a/src/UnisonLocal/Env.elm +++ b/src/UnisonLocal/AppContext.elm @@ -1,4 +1,4 @@ -module UnisonLocal.Env exposing (..) +module UnisonLocal.AppContext exposing (..) import Browser.Navigation as Nav import Code.Config @@ -9,7 +9,7 @@ import UnisonLocal.Api as LocalApi import UnisonLocal.CodeBrowsingContext exposing (CodeBrowsingContext) -type alias Env = +type alias AppContext = { operatingSystem : OperatingSystem , basePath : String , api : HttpApi @@ -24,7 +24,7 @@ type alias Flags = } -init : Flags -> Nav.Key -> Env +init : Flags -> Nav.Key -> AppContext init flags navKey = { operatingSystem = OS.fromString flags.operatingSystem , basePath = flags.basePath @@ -33,10 +33,10 @@ init flags navKey = } -toCodeConfig : Env -> CodeBrowsingContext -> Perspective -> Code.Config.Config -toCodeConfig env codeBrowsingContext perspective = - { operatingSystem = env.operatingSystem +toCodeConfig : AppContext -> CodeBrowsingContext -> Perspective -> Code.Config.Config +toCodeConfig appContext codeBrowsingContext perspective = + { operatingSystem = appContext.operatingSystem , perspective = perspective , toApiEndpoint = LocalApi.codebaseApiEndpointToEndpoint codeBrowsingContext - , api = env.api + , api = appContext.api } diff --git a/src/UnisonLocal/Page/CodePage.elm b/src/UnisonLocal/Page/CodePage.elm index 8f5a9ca..2771b71 100644 --- a/src/UnisonLocal/Page/CodePage.elm +++ b/src/UnisonLocal/Page/CodePage.elm @@ -20,8 +20,8 @@ import UI.PageContent as PageContent exposing (PageContent) import UI.PageLayout as PageLayout exposing (PageLayout) import UI.Sidebar as Sidebar exposing (Sidebar) import UI.ViewMode as ViewMode +import UnisonLocal.AppContext as AppContext exposing (AppContext) import UnisonLocal.CodeBrowsingContext exposing (CodeBrowsingContext(..)) -import UnisonLocal.Env as Env exposing (Env) import UnisonLocal.Page.CodePageContent as CodePageContent import UnisonLocal.Route as Route exposing (CodeRoute(..)) @@ -50,11 +50,11 @@ type alias Model = } -init : Env -> CodeBrowsingContext -> CodeRoute -> ( Model, Cmd Msg ) -init env context codeRoute = +init : AppContext -> CodeBrowsingContext -> CodeRoute -> ( Model, Cmd Msg ) +init appContext context codeRoute = let config = - Env.toCodeConfig env context perspective + AppContext.toCodeConfig appContext context perspective perspective = case codeRoute of @@ -88,7 +88,7 @@ init env context codeRoute = |> CodePageContent.fetchNamespaceDetails FetchPerspectiveNamespaceDetailsFinished context - |> Maybe.map (HttpApi.perform env.api) + |> Maybe.map (HttpApi.perform appContext.api) |> Maybe.withDefault Cmd.none in ( { content = content @@ -96,7 +96,7 @@ init env context codeRoute = , codebaseTree = codebaseTree , config = config , modal = NoModal - , keyboardShortcut = KeyboardShortcut.init env.operatingSystem + , keyboardShortcut = KeyboardShortcut.init appContext.operatingSystem } , Cmd.batch [ cmd @@ -125,8 +125,8 @@ type Msg | WorkspaceMsg Workspace.Msg -update : Env -> CodeBrowsingContext -> CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) -update env context codeRoute msg model_ = +update : AppContext -> CodeBrowsingContext -> CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) +update appContext context codeRoute msg model_ = let -- Always update the subPage since url/route changes often happens out -- of band. @@ -134,7 +134,7 @@ update env context codeRoute msg model_ = -- like when do we need it via `update`? its supposed to be out of band -- right? ( model, cmd ) = - updateSubPage env context codeRoute model_ + updateSubPage appContext context codeRoute model_ in case ( model.content, msg ) of ( _, ShowFinderModal ) -> @@ -179,7 +179,7 @@ update env context codeRoute msg model_ = Perspective.upOneLevel model.config.perspective navCmd = - navigateToCode env context (Route.replacePerspective (routeReference codeRoute) newPerspective) + navigateToCode appContext context (Route.replacePerspective (routeReference codeRoute) newPerspective) in ( model, Cmd.batch [ cmd, navCmd ] ) @@ -189,7 +189,7 @@ update env context codeRoute msg model_ = Perspective.toNamespacePerspective model.config.perspective fqn navCmd = - navigateToCode env context (Route.replacePerspective (routeReference codeRoute) perspective) + navigateToCode appContext context (Route.replacePerspective (routeReference codeRoute) perspective) in ( model, Cmd.batch [ cmd, navCmd ] ) @@ -213,7 +213,7 @@ update env context codeRoute msg model_ = CodebaseTree.OpenDefinition ref -> let navCmd = - navigateToCode env context (Route.definition model.config.perspective ref) + navigateToCode appContext context (Route.definition model.config.perspective ref) -- Close the sidebar when opening items on mobile m_ = @@ -239,7 +239,7 @@ update env context codeRoute msg model_ = Nothing navCmd = - navigateToCode env context (Route.replacePerspective ref perspective) + navigateToCode appContext context (Route.replacePerspective ref perspective) in ( m, Cmd.batch [ cmd, cmd_, navCmd ] ) @@ -262,7 +262,7 @@ update env context codeRoute msg model_ = , Cmd.batch [ cmd , Cmd.map FinderMsg fCmd - , navigateToCode env context (Route.definition model.config.perspective r) + , navigateToCode appContext context (Route.definition model.config.perspective r) ] ) @@ -276,7 +276,7 @@ update env context codeRoute msg model_ = -- hitting 'x' on the keyboard) is re-opened as the next event -- happens before the route change to the newly focused item and thus -- the old item is re-opened. - keydown env model_ event + keydown appContext model_ event ( _, KeyboardShortcutMsg kMsg ) -> let @@ -293,7 +293,7 @@ update env context codeRoute msg model_ = navCmd = case out of ReadmeCard.OpenDefinition r -> - navigateToCode env context (Route.definition model.config.perspective r) + navigateToCode appContext context (Route.definition model.config.perspective r) _ -> Cmd.none @@ -310,10 +310,10 @@ update env context codeRoute msg model_ = ( m, outCmd ) = case outMsg of Workspace.Focused ref -> - ( model, navigateToCode env context (Route.definition model.config.perspective ref) ) + ( model, navigateToCode appContext context (Route.definition model.config.perspective ref) ) Workspace.Emptied -> - ( model, navigateToCode env context (Route.codeRoot model.config.perspective) ) + ( model, navigateToCode appContext context (Route.codeRoot model.config.perspective) ) Workspace.ChangePerspectiveToSubNamespace ref subFqn -> let @@ -329,7 +329,7 @@ update env context codeRoute msg model_ = in Perspective.toNamespacePerspective model.config.perspective fullFqn in - ( model, navigateToCode env context (Route.replacePerspective ref perspective) ) + ( model, navigateToCode appContext context (Route.replacePerspective ref perspective) ) Workspace.ShowFinderRequest adhocFqn -> let @@ -349,15 +349,15 @@ update env context codeRoute msg model_ = ( model, cmd ) -updateSubPage : Env -> CodeBrowsingContext -> CodeRoute -> Model -> ( Model, Cmd Msg ) -updateSubPage env codeBrowsingContext codeRoute model = +updateSubPage : AppContext -> CodeBrowsingContext -> CodeRoute -> Model -> ( Model, Cmd Msg ) +updateSubPage appContext codeBrowsingContext codeRoute model = let toConfig = - Env.toCodeConfig env codeBrowsingContext + AppContext.toCodeConfig appContext codeBrowsingContext refreshSidebar newConfig m = CodePageContent.fetchPerspectiveAndCodebaseTree - env + appContext newConfig FetchPerspectiveNamespaceDetailsFinished CodebaseTreeMsg @@ -432,8 +432,8 @@ routeReference route = Nothing -keydown : Env -> Model -> KeyboardEvent -> ( Model, Cmd Msg ) -keydown env model keyboardEvent = +keydown : AppContext -> Model -> KeyboardEvent -> ( Model, Cmd Msg ) +keydown appContext model keyboardEvent = let shortcut = KeyboardShortcut.fromKeyboardEvent model.keyboardShortcut keyboardEvent @@ -455,7 +455,7 @@ keydown env model keyboardEvent = ( { model | modal = NoModal }, Cmd.none ) _ -> - if Finder.isShowFinderKeyboardShortcut env.operatingSystem shortcut then + if Finder.isShowFinderKeyboardShortcut appContext.operatingSystem shortcut then let ( finder, cmd ) = Finder.init model.config @@ -471,8 +471,8 @@ keydown env model keyboardEvent = -- EFFECTS -navigateToCode : Env -> CodeBrowsingContext -> CodeRoute -> Cmd Msg -navigateToCode env context codeRoute = +navigateToCode : AppContext -> CodeBrowsingContext -> CodeRoute -> Cmd Msg +navigateToCode appContext context codeRoute = let route_ = case context of @@ -482,7 +482,7 @@ navigateToCode env context codeRoute = ProjectBranch ps bs -> Route.projectBranch ps bs codeRoute in - Route.navigate env.navKey route_ + Route.navigate appContext.navKey route_ @@ -541,8 +541,8 @@ viewSidebar model = { isToggled = model.sidebarToggled, toggleMsg = ToggleSidebar } -view : Env -> (Msg -> msg) -> CodeBrowsingContext -> Model -> ( PageLayout msg, Maybe (Html msg) ) -view env toMsg _ model = +view : AppContext -> (Msg -> msg) -> CodeBrowsingContext -> Model -> ( PageLayout msg, Maybe (Html msg) ) +view appContext toMsg _ model = let content = PageContent.map toMsg (viewContent model.config.perspective model.content) @@ -558,7 +558,7 @@ view env toMsg _ model = case model.content of PerspectivePage _ -> ( PageLayout.sidebarLeftContentLayout - env.operatingSystem + appContext.operatingSystem (Sidebar.map toMsg (viewSidebar model)) content (PageLayout.PageFooter []) @@ -568,7 +568,7 @@ view env toMsg _ model = WorkspacePage _ -> ( PageLayout.sidebarLeftContentLayout - env.operatingSystem + appContext.operatingSystem (Sidebar.map toMsg (viewSidebar model)) content (PageLayout.PageFooter []) diff --git a/src/UnisonLocal/Page/CodePageContent.elm b/src/UnisonLocal/Page/CodePageContent.elm index 9358fe1..8e002df 100644 --- a/src/UnisonLocal/Page/CodePageContent.elm +++ b/src/UnisonLocal/Page/CodePageContent.elm @@ -28,8 +28,8 @@ import UI.Placeholder as Placeholder import UI.Sidebar as Sidebar exposing (Sidebar) import UI.Tooltip as Tooltip import UnisonLocal.Api as LocalApi +import UnisonLocal.AppContext exposing (AppContext) import UnisonLocal.CodeBrowsingContext exposing (CodeBrowsingContext) -import UnisonLocal.Env exposing (Env) @@ -37,7 +37,7 @@ import UnisonLocal.Env exposing (Env) fetchPerspectiveAndCodebaseTree : - Env + AppContext -> Config -> (FQN -> WebData NamespaceDetails -> msg) -> (CodebaseTree.Msg -> msg) @@ -45,7 +45,7 @@ fetchPerspectiveAndCodebaseTree : -> Perspective -> { m | codebaseTree : CodebaseTree.Model } -> ( { m | codebaseTree : CodebaseTree.Model }, Cmd msg ) -fetchPerspectiveAndCodebaseTree env config finishedMsg codebaseTreeMsg context oldPerspective model = +fetchPerspectiveAndCodebaseTree appContext config finishedMsg codebaseTreeMsg context oldPerspective model = let ( codebaseTree, codebaseTreeCmd ) = CodebaseTree.init config @@ -53,7 +53,7 @@ fetchPerspectiveAndCodebaseTree env config finishedMsg codebaseTreeMsg context o fetchNamespaceDetailsCmd = config.perspective |> fetchNamespaceDetails finishedMsg context - |> Maybe.map (HttpApi.perform env.api) + |> Maybe.map (HttpApi.perform appContext.api) |> Maybe.withDefault Cmd.none in if not (Perspective.equals oldPerspective config.perspective) && Perspective.needsFetching config.perspective then diff --git a/src/UnisonLocal/Page/HomePage.elm b/src/UnisonLocal/Page/HomePage.elm index 8e5678e..3ff9008 100644 --- a/src/UnisonLocal/Page/HomePage.elm +++ b/src/UnisonLocal/Page/HomePage.elm @@ -3,16 +3,16 @@ module UnisonLocal.Page.HomePage exposing (..) import UI.PageContent as PageContent import UI.PageLayout as PageLayout exposing (PageFooter(..)) import UI.StatusBanner as StatusBanner +import UnisonLocal.AppContext exposing (AppContext) import UnisonLocal.AppDocument as AppDocument exposing (AppDocument) import UnisonLocal.AppHeader as AppHeader -import UnisonLocal.Env exposing (Env) type alias Model = () -init : Env -> ( Model, Cmd Msg ) +init : AppContext -> ( Model, Cmd Msg ) init _ = ( (), Cmd.none ) @@ -21,7 +21,7 @@ type Msg = NoOp -update : Env -> Msg -> Model -> ( Model, Cmd Msg ) +update : AppContext -> Msg -> Model -> ( Model, Cmd Msg ) update _ _ model = ( model, Cmd.none ) diff --git a/src/UnisonLocal/Page/NonProjectCodePage.elm b/src/UnisonLocal/Page/NonProjectCodePage.elm index 1c141e3..7e6c083 100644 --- a/src/UnisonLocal/Page/NonProjectCodePage.elm +++ b/src/UnisonLocal/Page/NonProjectCodePage.elm @@ -1,10 +1,10 @@ module UnisonLocal.Page.NonProjectCodePage exposing (..) import UI.PageLayout as PageLayout exposing (PageFooter(..)) +import UnisonLocal.AppContext exposing (AppContext) import UnisonLocal.AppDocument as AppDocument exposing (AppDocument) import UnisonLocal.AppHeader as AppHeader import UnisonLocal.CodeBrowsingContext as CodeBrowsingContext -import UnisonLocal.Env exposing (Env) import UnisonLocal.Page.CodePage as CodePage import UnisonLocal.Route as Route @@ -17,14 +17,14 @@ type alias Model = { code : CodePage.Model } -init : Env -> Route.CodeRoute -> ( Model, Cmd Msg ) -init env codeRoute = +init : AppContext -> Route.CodeRoute -> ( Model, Cmd Msg ) +init appContext codeRoute = let context = CodeBrowsingContext.nonProjectCode ( code, cmd ) = - CodePage.init env context codeRoute + CodePage.init appContext context codeRoute in ( { code = code }, Cmd.map CodePageMsg cmd ) @@ -37,13 +37,13 @@ type Msg = CodePageMsg CodePage.Msg -update : Env -> Route.CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) -update env codeRoute msg model = +update : AppContext -> Route.CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) +update appContext codeRoute msg model = case msg of CodePageMsg codePageMsg -> let ( codePage_, codePageCmd ) = - CodePage.update env CodeBrowsingContext.nonProjectCode codeRoute codePageMsg model.code + CodePage.update appContext CodeBrowsingContext.nonProjectCode codeRoute codePageMsg model.code in ( { model | code = codePage_ } , Cmd.map CodePageMsg codePageCmd @@ -52,14 +52,14 @@ update env codeRoute msg model = {-| Pass through to CodePage. Used by App when routes change -} -updateSubPage : Env -> Model -> Route.CodeRoute -> ( Model, Cmd Msg ) -updateSubPage env model codeRoute = +updateSubPage : AppContext -> Model -> Route.CodeRoute -> ( Model, Cmd Msg ) +updateSubPage appContext model codeRoute = let codeBrowsingContext = CodeBrowsingContext.nonProjectCode ( codePage, codePageCmd ) = - CodePage.updateSubPage env codeBrowsingContext codeRoute model.code + CodePage.updateSubPage appContext codeBrowsingContext codeRoute model.code in ( { model | code = codePage } , Cmd.map CodePageMsg codePageCmd @@ -79,14 +79,14 @@ subscriptions model = -- VIEW -view : Env -> Model -> AppDocument Msg -view env model = +view : AppContext -> Model -> AppDocument Msg +view appContext model = let appHeader = AppHeader.appHeader ( codePage_, modal_ ) = - CodePage.view env + CodePage.view appContext CodePageMsg CodeBrowsingContext.nonProjectCode model.code diff --git a/src/UnisonLocal/Page/ProjectBranchPage.elm b/src/UnisonLocal/Page/ProjectBranchPage.elm index bccaa00..651d872 100644 --- a/src/UnisonLocal/Page/ProjectBranchPage.elm +++ b/src/UnisonLocal/Page/ProjectBranchPage.elm @@ -5,10 +5,10 @@ import Html exposing (div, text) import Html.Attributes exposing (class) import UI.Icon as Icon import UI.PageLayout as PageLayout exposing (PageFooter(..)) +import UnisonLocal.AppContext exposing (AppContext) import UnisonLocal.AppDocument as AppDocument exposing (AppDocument) import UnisonLocal.AppHeader as AppHeader import UnisonLocal.CodeBrowsingContext as CodeBrowsingContext -import UnisonLocal.Env exposing (Env) import UnisonLocal.Page.CodePage as CodePage import UnisonLocal.ProjectName as ProjectName exposing (ProjectName) import UnisonLocal.Route as Route @@ -22,14 +22,14 @@ type alias Model = { code : CodePage.Model } -init : Env -> ProjectName -> BranchRef -> Route.CodeRoute -> ( Model, Cmd Msg ) -init env projectName branchRef codeRoute = +init : AppContext -> ProjectName -> BranchRef -> Route.CodeRoute -> ( Model, Cmd Msg ) +init appContext projectName branchRef codeRoute = let context = CodeBrowsingContext.projectBranch projectName branchRef ( code, cmd ) = - CodePage.init env context codeRoute + CodePage.init appContext context codeRoute in ( { code = code }, Cmd.map CodePageMsg cmd ) @@ -42,8 +42,8 @@ type Msg = CodePageMsg CodePage.Msg -update : Env -> ProjectName -> BranchRef -> Route.CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) -update env projectName branchRef codeRoute msg model = +update : AppContext -> ProjectName -> BranchRef -> Route.CodeRoute -> Msg -> Model -> ( Model, Cmd Msg ) +update appContext projectName branchRef codeRoute msg model = case msg of CodePageMsg codePageMsg -> let @@ -51,7 +51,7 @@ update env projectName branchRef codeRoute msg model = CodeBrowsingContext.projectBranch projectName branchRef ( codePage_, codePageCmd ) = - CodePage.update env context codeRoute codePageMsg model.code + CodePage.update appContext context codeRoute codePageMsg model.code in ( { model | code = codePage_ } , Cmd.map CodePageMsg codePageCmd @@ -60,14 +60,14 @@ update env projectName branchRef codeRoute msg model = {-| Pass through to CodePage. Used by App when routes change -} -updateSubPage : Env -> ProjectName -> BranchRef -> Model -> Route.CodeRoute -> ( Model, Cmd Msg ) -updateSubPage env projectName branchRef model codeRoute = +updateSubPage : AppContext -> ProjectName -> BranchRef -> Model -> Route.CodeRoute -> ( Model, Cmd Msg ) +updateSubPage appContext projectName branchRef model codeRoute = let codeBrowsingContext = CodeBrowsingContext.projectBranch projectName branchRef ( codePage, codePageCmd ) = - CodePage.updateSubPage env codeBrowsingContext codeRoute model.code + CodePage.updateSubPage appContext codeBrowsingContext codeRoute model.code in ( { model | code = codePage } , Cmd.map CodePageMsg codePageCmd @@ -87,8 +87,8 @@ subscriptions model = -- VIEW -view : Env -> ProjectName -> BranchRef -> Model -> AppDocument Msg -view env projectName branchRef model = +view : AppContext -> ProjectName -> BranchRef -> Model -> AppDocument Msg +view appContext projectName branchRef model = let appHeader = AppHeader.appHeader @@ -98,7 +98,7 @@ view env projectName branchRef model = ] ( codePage_, modal_ ) = - CodePage.view env + CodePage.view appContext CodePageMsg (CodeBrowsingContext.projectBranch projectName branchRef) model.code diff --git a/src/UnisonLocal/PreApp.elm b/src/UnisonLocal/PreApp.elm index 6050ab8..9932c1c 100644 --- a/src/UnisonLocal/PreApp.elm +++ b/src/UnisonLocal/PreApp.elm @@ -15,19 +15,19 @@ import UI.Icon as Icon import UI.PageContent as PageContent import UI.PageLayout as PageLayout import UnisonLocal.App as App +import UnisonLocal.AppContext as AppContext exposing (Flags) import UnisonLocal.AppHeader as AppHeader -import UnisonLocal.Env as Env exposing (Flags) import UnisonLocal.Route as Route exposing (Route) import Url exposing (Url) type Model - = Initializing PreEnv - | InitializationError PreEnv Http.Error + = Initializing PreAppContext + | InitializationError PreAppContext Http.Error | Initialized App.Model -type alias PreEnv = +type alias PreAppContext = { flags : Flags , route : Route , navKey : Nav.Key @@ -40,11 +40,11 @@ init flags url navKey = route = Route.fromUrl flags.basePath url - env = - Env.init flags navKey + appContext = + AppContext.init flags navKey ( app, cmd ) = - App.init env route + App.init appContext route in ( Initialized app, Cmd.map AppMsg cmd )