diff --git a/web/chat/edit-message-provider.js b/web/chat/edit-message-provider.js --- a/web/chat/edit-message-provider.js +++ b/web/chat/edit-message-provider.js @@ -19,6 +19,7 @@ +clearEditModal: () => void, +editState: ?EditState, +setDraft: string => void, + +setError: boolean => void, }; const EditModalContext: React.Context = @@ -27,6 +28,7 @@ clearEditModal: () => {}, editState: null, setDraft: () => {}, + setError: () => {}, }); type Props = { @@ -63,14 +65,27 @@ [editState, setEditState], ); + const setError = React.useCallback( + (isError: boolean) => { + if (!editState) { + return; + } + setEditState({ + ...editState, + isError, + }); + }, + [editState, setEditState], + ); const value = React.useMemo( () => ({ renderEditModal, clearEditModal: clearEditModal, editState, setDraft, + setError, }), - [renderEditModal, clearEditModal, editState, setDraft], + [renderEditModal, clearEditModal, editState, setDraft, setError], ); let modalOverlay; diff --git a/web/chat/edit-text-message.react.js b/web/chat/edit-text-message.react.js --- a/web/chat/edit-text-message.react.js +++ b/web/chat/edit-text-message.react.js @@ -33,6 +33,7 @@ messageID: string, text: string, ) => Promise, + +setError: boolean => void, +setDraft: string => void, }; class EditTextMessage extends React.PureComponent { @@ -129,7 +130,7 @@ ); this.exitEditMode(); } catch (e) { - // TODO: Handle error + this.props.setError(true); } }; @@ -140,7 +141,8 @@ const ConnectedEditTextMessage: React.ComponentType = React.memo(function ConnectedEditTextMessage(props) { - const { editState, clearEditModal, setDraft } = useEditModalContext(); + const { editState, clearEditModal, setError, setDraft } = + useEditModalContext(); const editMessage = useEditMessage(); return ( );