aboutsummaryrefslogtreecommitdiff
path: root/front/src/Main.elm
diff options
context:
space:
mode:
authorGuillermo Ramos2025-03-16 12:24:52 +0100
committerGuillermo Ramos2025-03-16 13:18:14 +0100
commit0770503e4f57252f6edfd92a2e65f7b6c3eb77c7 (patch)
tree357e42bb0e7485fe01eb72787497bd58e3506fbe /front/src/Main.elm
parentb1709107d2a94eff5b05037d52e7b53aec9c7598 (diff)
downloadhiccup-0770503e4f57252f6edfd92a2e65f7b6c3eb77c7.tar.gz
Simulate as soon as URL is valid
Diffstat (limited to 'front/src/Main.elm')
-rw-r--r--front/src/Main.elm53
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