diff options
author | Guillermo Ramos | 2025-03-14 11:52:09 +0100 |
---|---|---|
committer | Guillermo Ramos | 2025-03-15 13:33:30 +0100 |
commit | a05b9066900a017ac75e77e687f5414ad6f8d25a (patch) | |
tree | c85eb5a1519a4c8b50fb6fc9c6d5e9dfe19b3c12 /front/src | |
parent | 8dff02998db9eac1efacf555ccbdec198d7fe213 (diff) | |
download | hiccup-a05b9066900a017ac75e77e687f5414ad6f8d25a.tar.gz |
New update: change interest rate
Diffstat (limited to 'front/src')
-rw-r--r-- | front/src/Main.elm | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/front/src/Main.elm b/front/src/Main.elm index bc3f763..ad8862b 100644 --- a/front/src/Main.elm +++ b/front/src/Main.elm @@ -271,6 +271,7 @@ modelToUrl { settings, rawSpecs } = type SimUpdate = Amortize Float + | SetI1 Float simUpdateEncode : SimUpdate -> JE.Value @@ -279,28 +280,35 @@ simUpdateEncode mupdate = Amortize f -> JE.object [ ( "Amortize", JE.float f ) ] + SetI1 f -> + JE.object [ ( "SetI1", JE.float f ) ] + simUpdateDecoder : JD.Decoder SimUpdate simUpdateDecoder = JD.oneOf [ JD.field "Amortize" <| JD.map Amortize JD.float + , JD.field "SetI1" <| JD.map SetI1 JD.float ] simUpdateFlatten : List SimUpdate -> List SimUpdate simUpdateFlatten us = let - { amortized } = + { amortized, other } = List.foldr (\upd acc -> case upd of Amortize f -> { acc | amortized = acc.amortized + f } + + SetI1 f -> + { acc | other = upd :: acc.other } ) - { amortized = 0 } + { amortized = 0, other = [] } us in - [ Amortize amortized ] + Amortize amortized :: other type alias PeriodicUpdate = @@ -1046,7 +1054,10 @@ simUpdateView : List (Attribute Msg) -> Model -> SimUpdate -> Html Msg simUpdateView attrs m upd = case upd of Amortize f -> - span attrs [ text "+", amountView m.settings.currency f ] + p attrs [ text "+", amountView m.settings.currency f ] + + SetI1 f -> + p attrs [ text <| String.fromFloat f, text "%" ] quotaView : Model -> MortgageSim -> Quota -> Html Msg @@ -1079,7 +1090,12 @@ quotaView m { updates } { month, payed, pending_principal } = else ( text "" - , div [] (List.map (simUpdateView [ class "bg-lime-200" ] m << .upd) <| monthUpdates.periodically) + , div [] + (List.map (simUpdateView [ class "bg-lime-200" ] m << .upd) monthUpdates.periodically + ++ (List.map (simUpdateView [ class "bg-lime-200" ] m) <| + List.concatMap Tuple.second monthUpdates.byMonth + ) + ) ) in if modBy 12 (month - 1) == 0 || monthInExpandedYear then |