Hi Dwayne,

I'm not sure how complex your currency formatting needs are.  But I think 
you should be able to do a lot of this yourself in Elm—especially if all 
you're looking for is commas and dollar signs.

I threw together an Ellie app to get you started.

https://ellie-app.com/34vgDLqvmd6a1/1

Would something like that help you?

Dustin

On Saturday, April 29, 2017 at 8:26:05 AM UTC-4, Dwayne Crooks wrote:
>
> 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.

Reply via email to