I would use native binding for such a thing. Last week I had to format money as well and found "toFixed" missing in Elm, so I've created a native module for that (few lines of code). It's perfect, just remember: output always depends on nothing but input and never let exceptions blow your Elm code. This is why I would suggest wrapping result as a Elm's Result (or a Maybe?). I'm writing using my phone, if you get troubles with this, let us know here, I could help you later.
Regards, Witold Szczerba 29.04.2017 14:26 "Dwayne Crooks" <[email protected]> napisaĆ(a): I'm porting an application from React/Redux to Elm and I'm having trouble figuring out how to format a value as money. In the original application we used http://openexchangerates.github.io/accounting.js/. So naturally I wanted to make use of that same library when writing the Elm version. Based on my reading ports seem to be the solution however when I think through the implications it doesn't seem natural to write my code in that way when formatting is a presentation concern. Here's what I came up with: 1. I created a port module called Format. port module Format exposing (..) > > port asMoney : Float -> Cmd msg > port moneyFormats : (String -> msg) -> Sub msg 2. I originally envisioned writing the view as follows: viewSales : Float -> Html Msg > viewSales amount = > viewWidget "Gross Sales (All Time)" (Format.asMoney amount) But obviously, that's out the window since Format.asMoney returns a command. 3. It means I now have to format in my update function and store the formatted data in my model so that my view can access it. I find that very inconvenient and I don't want presentation concerns in neither my update function nor my model. Am I thinking through this correctly? How do I proceed? Should I consider writing an external library with a Native module like for e.g. https://github.com/NoRedInk/elm-moment or https://github.com/evancz/ elm-graphics? Any help would be greatly appreciated. -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
