diff options
author | Guillermo Ramos | 2025-03-16 12:24:52 +0100 |
---|---|---|
committer | Guillermo Ramos | 2025-03-16 13:18:14 +0100 |
commit | 0770503e4f57252f6edfd92a2e65f7b6c3eb77c7 (patch) | |
tree | 357e42bb0e7485fe01eb72787497bd58e3506fbe /front/src | |
parent | b1709107d2a94eff5b05037d52e7b53aec9c7598 (diff) | |
download | hiccup-0770503e4f57252f6edfd92a2e65f7b6c3eb77c7.tar.gz |
Simulate as soon as URL is valid
Diffstat (limited to 'front/src')
-rw-r--r-- | front/src/Main.elm | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/front/src/Main.elm b/front/src/Main.elm index bc0b050..4806457 100644 --- a/front/src/Main.elm +++ b/front/src/Main.elm @@ -242,7 +242,7 @@ defaultRawSpecs = , total = "200000" , initial = "40000" , rate = "80" - , i1 = "1.621" + , i1 = "2.5" , years = "30" , vat = "6" , fee = "3" @@ -721,20 +721,15 @@ toRoute url = init : () -> Url -> Nav.Key -> ( Model, Cmd Msg ) init () url navKey = - let - ( settings, rawSpecs ) = - routeQuery (toRoute url) - in - ( { settings = settings - , navKey = navKey - , error = "" - , rawSpecs = rawSpecs - , expandedYears = Set.empty - , simulation = Nothing - , t = make_t settings.lang - } - , Cmd.none - ) + { settings = defaultSettings + , navKey = navKey + , error = "" + , rawSpecs = defaultRawSpecs + , expandedYears = Set.empty + , simulation = Nothing + , t = identity + } + |> update (ChangedUrl url) @@ -833,9 +828,7 @@ update msg m = ( { m | error = errorToString err }, Cmd.none ) RunSim specs -> - ( m - , batch [ runSim m specs, Nav.pushUrl m.navKey (modelToUrl m) ] - ) + ( m, Nav.pushUrl m.navKey (modelToUrl m) ) SetUrl (Internal url) -> ( m, Nav.pushUrl m.navKey (Url.toString url) ) @@ -847,13 +840,21 @@ update msg m = let ( settings, rawSpecs ) = routeQuery (toRoute url) + + newM = + { m + | settings = settings + , rawSpecs = rawSpecs + , t = make_t settings.lang + } in - ( { m - | settings = settings - , rawSpecs = rawSpecs - , t = make_t settings.lang - } - , Cmd.none + ( newM + , case parseSimSpecs rawSpecs of + Nothing -> + Cmd.none + + Just specs -> + runSim newM specs ) RmPeriodicUpdate pu -> @@ -867,7 +868,7 @@ update msg m = newM = setModelUpdates { updates | periodic = List.filter ((/=) pu) periodicUpdates } m in - ( newM, Nav.pushUrl m.navKey (modelToUrl newM) ) + ( m, Nav.pushUrl m.navKey (modelToUrl newM) ) RmUpdate mu -> let @@ -880,7 +881,7 @@ update msg m = newM = setModelUpdates { updates | byMonth = List.filter ((/=) mu) byMonUpdates } m in - ( newM, Nav.pushUrl m.navKey (modelToUrl newM) ) + ( m, Nav.pushUrl m.navKey (modelToUrl newM) ) UpdateSpecs field val -> let |