this is strange to have this whole block in saveMessageDraft.

Especially you want to do it in "discardDraft" as well. You should have a common "onLeave" method that you would call from both `discardDraft` and `onSave`