aboutsummaryrefslogtreecommitdiff
path: root/front/src
diff options
context:
space:
mode:
authorGuillermo Ramos2025-03-14 11:52:09 +0100
committerGuillermo Ramos2025-03-15 13:33:30 +0100
commita05b9066900a017ac75e77e687f5414ad6f8d25a (patch)
treec85eb5a1519a4c8b50fb6fc9c6d5e9dfe19b3c12 /front/src
parent8dff02998db9eac1efacf555ccbdec198d7fe213 (diff)
downloadhiccup-a05b9066900a017ac75e77e687f5414ad6f8d25a.tar.gz
New update: change interest rate
Diffstat (limited to 'front/src')
-rw-r--r--front/src/Main.elm26
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