Changeset View
Changeset View
Standalone View
Standalone View
web/chat/edit-text-message.react.js
Show All 27 Lines | |||||
type Props = { | type Props = { | ||||
...BaseProps, | ...BaseProps, | ||||
+editState: ?EditState, | +editState: ?EditState, | ||||
+clearEditModal: () => void, | +clearEditModal: () => void, | ||||
+editMessage: ( | +editMessage: ( | ||||
messageID: string, | messageID: string, | ||||
text: string, | text: string, | ||||
) => Promise<SendEditMessageResult>, | ) => Promise<SendEditMessageResult>, | ||||
+setError: boolean => void, | |||||
+setDraft: string => void, | +setDraft: string => void, | ||||
}; | }; | ||||
class EditTextMessage extends React.PureComponent<Props> { | class EditTextMessage extends React.PureComponent<Props> { | ||||
myRef: { current: null | HTMLDivElement }; | myRef: { current: null | HTMLDivElement }; | ||||
constructor(props: any) { | constructor(props: any) { | ||||
super(props); | super(props); | ||||
this.myRef = React.createRef(); | this.myRef = React.createRef(); | ||||
▲ Show 20 Lines • Show All 80 Lines • ▼ Show 20 Lines | editMessage = async () => { | ||||
} | } | ||||
try { | try { | ||||
await this.props.editMessage( | await this.props.editMessage( | ||||
messageInfoID, | messageInfoID, | ||||
this.props.editState.editedMessageDraft, | this.props.editState.editedMessageDraft, | ||||
); | ); | ||||
this.exitEditMode(); | this.exitEditMode(); | ||||
} catch (e) { | } catch (e) { | ||||
// TODO: Handle error | this.props.setError(true); | ||||
} | } | ||||
}; | }; | ||||
exitEditMode = () => { | exitEditMode = () => { | ||||
this.props.clearEditModal(); | this.props.clearEditModal(); | ||||
}; | }; | ||||
} | } | ||||
const ConnectedEditTextMessage: React.ComponentType<BaseProps> = | const ConnectedEditTextMessage: React.ComponentType<BaseProps> = | ||||
React.memo<BaseProps>(function ConnectedEditTextMessage(props) { | React.memo<BaseProps>(function ConnectedEditTextMessage(props) { | ||||
const { editState, clearEditModal, setDraft } = useEditModalContext(); | const { editState, clearEditModal, setError, setDraft } = | ||||
useEditModalContext(); | |||||
const editMessage = useEditMessage(); | const editMessage = useEditMessage(); | ||||
return ( | return ( | ||||
<EditTextMessage | <EditTextMessage | ||||
{...props} | {...props} | ||||
editState={editState} | editState={editState} | ||||
clearEditModal={clearEditModal} | clearEditModal={clearEditModal} | ||||
editMessage={editMessage} | editMessage={editMessage} | ||||
setError={setError} | |||||
setDraft={setDraft} | setDraft={setDraft} | ||||
/> | /> | ||||
); | ); | ||||
}); | }); | ||||
const ComposedEditTextMessage: React.ComponentType<BaseProps> = | const ComposedEditTextMessage: React.ComponentType<BaseProps> = | ||||
React.memo<BaseProps>(function ComposedEditTextMessage(props) { | React.memo<BaseProps>(function ComposedEditTextMessage(props) { | ||||
const { background, width, ...restProps } = props; | const { background, width, ...restProps } = props; | ||||
Show All 13 Lines |