Hello! I have an app that loads some JSON from a website and displays it. The state of the app could be modelled a bit like this:
type State = Loading | Displaying Stuff type alias Stuff = { … } Now I am writing the update function to handle messages: update : Msg -> State -> (State, Cmd Msg) update msg state = case msg of UpdateThis -> … UpdateThat -> … My problem is that the state can be either Loading or Displaying, but most of the messages only make sense in the Displaying state, leading me to code like this: update : Msg -> State -> (State, Cmd Msg) update msg state = case msg of UpdateThis -> case state of Displaying stuff -> … _ -> (Failed "Invalid state", Cmd.none) UpdateThat -> case state of Displaying stuff -> … _ -> (Failed "Invalid state", Cmd.none) Obviously, this is dumb. How can I “divide” the loading and the displaying part of the app? (Assuming that UpdateThis and UpdateThat can only arrive in the correct, Displaying state.) Thank you! T. -- 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 elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.