module Edition.Update exposing ( updateEdition ) import Char import Char exposing (KeyCode) import List import Edition.Model exposing (..) import Edition.Msg exposing (..) updateEdition : Msg -> Edition -> Edition updateEdition msg edition = case msg of DeleteLast -> case List.tail edition.chars of Just tailChars -> { edition | chars = tailChars } Nothing -> edition AddChar keyCode -> case keyCodeToChar edition.kind keyCode of Just char -> if keyCode == 32 && List.head edition.chars == Just (Char.fromCode 32) then edition else { edition | chars = char :: edition.chars } Nothing -> edition