Changeset View
Changeset View
Standalone View
Standalone View
native/chat/chat-input-bar.react.js
Show First 20 Lines • Show All 728 Lines • ▼ Show 20 Lines | class ChatInputBar extends React.PureComponent<Props, State> { | ||||
selectableTextInputRef = ( | selectableTextInputRef = ( | ||||
selectableTextInput: ?React.ElementRef<typeof SelectableTextInput>, | selectableTextInput: ?React.ElementRef<typeof SelectableTextInput>, | ||||
) => { | ) => { | ||||
this.selectableTextInput = selectableTextInput; | this.selectableTextInput = selectableTextInput; | ||||
}; | }; | ||||
updateText = (text: string) => { | updateText = (text: string) => { | ||||
this.setState({ text, textEdited: true }); | this.setState({ text, textEdited: true }); | ||||
this.props.inputState?.setEditedMessageChanged(this.isMessageEdited(text)); | |||||
if (this.isEditMode() || this.state.isExitingEditMode) { | if (this.isEditMode() || this.state.isExitingEditMode) { | ||||
return; | return; | ||||
} | } | ||||
this.saveDraft(text); | this.saveDraft(text); | ||||
}; | }; | ||||
updateSelectionState: (data: SyncedSelectionData) => void = data => { | updateSelectionState: (data: SyncedSelectionData) => void = data => { | ||||
this.setState({ selectionState: data }); | this.setState({ selectionState: data }); | ||||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | class ChatInputBar extends React.PureComponent<Props, State> { | ||||
isEditMode = () => { | isEditMode = () => { | ||||
const editState = this.props.inputState?.editState; | const editState = this.props.inputState?.editState; | ||||
const isThisThread = | const isThisThread = | ||||
editState?.editedMessage?.threadID === this.props.threadInfo.id; | editState?.editedMessage?.threadID === this.props.threadInfo.id; | ||||
return editState && editState.editedMessage !== null && isThisThread; | return editState && editState.editedMessage !== null && isThisThread; | ||||
}; | }; | ||||
isMessageEdited = () => { | isMessageEdited = newText => { | ||||
let text = this.state.text; | let text = newText ?? this.state.text; | ||||
text = trimMessage(text); | text = trimMessage(text); | ||||
const originalText = this.props.editedMessageInfo?.text; | const originalText = this.props.editedMessageInfo?.text; | ||||
return text !== originalText; | return text !== originalText; | ||||
}; | }; | ||||
editMessage = async (messageID: string, text: string) => { | editMessage = async (messageID: string, text: string) => { | ||||
if (!this.isMessageEdited()) { | if (!this.isMessageEdited()) { | ||||
this.exitEditMode(); | this.exitEditMode(); | ||||
▲ Show 20 Lines • Show All 454 Lines • Show Last 20 Lines |