StartEditingNotebookTitle -> ( { model | notebookTitle = Editable.startEditing model.notebookTitle } , Dom.focus "notebook-title-editor" |> Task.attempt (always NoOp) ) CancelEditingNotebookTitle -> ( { model | notebookTitle = Editable.cancelEditing model.notebookTitle } , Cmd.none ) UpdateEditingNotebookTitle title -> ( { model | notebookTitle = Types.editableSetBuffer model.notebookTitle title } , Cmd.none ) SaveEditingNotebookTitle -> let cmd = saveNotebookTitleCmd model updatedValue = case model.notebookTitle of NotEditing { value } -> model.notebookTitle Editing { buffer } -> NotEditing { value = buffer } in ( { model | notebookTitle = updatedValue } , cmd ) SaveNotebookTitleFailure err -> ( model , Cmd.map IrnMsg <| Irn.showUserAlert "Error Updating Title" ) SaveNotebookTitleSuccess notebook -> ( { model | notebookTitle = NotEditing { value = notebook.title } } , Cmd.map IrnMsg <| Irn.showUserAlert "Notebook Title Updated" )