Skip to content

Commit

Permalink
Merge pull request #22827 from alitoshmatov/17275/emoji-selection-change
Browse files Browse the repository at this point in the history
Improved selection placement when emoji is typed
  • Loading branch information
MariaHCD authored Jul 17, 2023
2 parents 5cdf9cb + e1580b5 commit d71a2be
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
19 changes: 18 additions & 1 deletion src/libs/ComposerUtils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,21 @@ function canSkipTriggerHotkeys(isSmallScreenWidth, isKeyboardShown) {
return (isSmallScreenWidth && DeviceCapabilities.canUseTouchScreen()) || isKeyboardShown;
}

export {getNumberOfLines, updateNumberOfLines, insertText, canSkipTriggerHotkeys};
/**
* Returns the length of the common suffix between two input strings.
* The common suffix is the number of characters shared by both strings
* at the end (suffix) until a mismatch is encountered.
*
* @param {string} str1
* @param {string} str2
* @returns {number} The length of the common suffix between the strings.
*/
function getCommonSuffixLength(str1, str2) {
let i = 0;
while (str1[str1.length - 1 - i] === str2[str2.length - 1 - i]) {
i++;
}
return i;
}

export {getNumberOfLines, updateNumberOfLines, insertText, canSkipTriggerHotkeys, getCommonSuffixLength};
4 changes: 2 additions & 2 deletions src/pages/home/report/ReportActionCompose.js
Original file line number Diff line number Diff line change
Expand Up @@ -797,13 +797,13 @@ class ReportActionCompose extends React.Component {
this.debouncedUpdateFrequentlyUsedEmojis();
}

this.setState((prevState) => {
this.setState(() => {
const newState = {
isCommentEmpty: !!newComment.match(/^(\s)*$/),
value: newComment,
};
if (comment !== newComment) {
const remainder = prevState.value.slice(prevState.selection.end).length;
const remainder = ComposerUtils.getCommonSuffixLength(comment, newComment);
newState.selection = {
start: newComment.length - remainder,
end: newComment.length - remainder,
Expand Down

0 comments on commit d71a2be

Please sign in to comment.