One possible solution may be to hide element based on condition:
view model =
div
[ class "App" ]
[ div [ class "Error", hidden (String.isEmpty model.error) ] [ text
model.error ]
, div [ class "Gif", hidden (String.isEmpty model.gif) ]
[ input [ type' "text", readonly True, value model.gif ] []
, img [ src model.gif ] []
]
]
2016-05-16 23:22 GMT+06:00 Joaquín Oltra <[email protected]>:
> Hi!
>
> I'm porting a simple React webapp to Elm, and there is a pattern for not
> rendering a component that I'm not sure how to do cleanly with elm.
>
> The pattern is:
>
> data ? <Component/> : null
>
> In a render method, like in here:
> https://github.com/joakin/gimme-gif/blob/415ff83611ab64ba10eb4f0cddccc12d1192815d/browser/ui/app.js#L13-L15
>
> My translation to Elm has been doing something like:
>
> if String.isEmpty model.error then
> text ""
> else
> div [ class "Error" ] [ text model.error ]
>
> But it seems verbose and weird, so I figure there are probably better ways
> to accomplish the same.
>
> Any ideas?
>
> Here's some more code with the pattern a couple of times:
>
> view model =
> div
> [ class "App" ]
> [ -- Other nodes here...
> if String.isEmpty model.error then
> text ""
> else
> div [ class "Error" ] [ text model.error ]
> , if String.isEmpty model.gif then
> text ""
> else
> div [ class "Gif" ]
> [ input [ type' "text", readonly True, value model.gif ] []
> , img [ src model.gif ] []
> ]
> ]
>
>
>
>
> ps: I'm keeping the state of the Error, Gif, etc separate because they are
> independent, there may be none to show, just the error, no error but a gif,
> and maybe both error and a gif.
>
> --
> 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.
>
--
Best regards,
Fedor Nezhivoi.
--
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.