-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[$250] Web - Composer - Cursor positioned at the start if pasting text which contains a new line #42216
Comments
Triggered auto assignment to @Christinadobrzyn ( |
We think that this bug might be related to #wave-collect - Release 1 |
@Christinadobrzyn FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors. |
Very similar to #42112 - asking if the fix will be the same |
ProposalPlease re-state the problem that we are trying to solve in this issue.Web - Composer - Cursor positioned at the start if pasting text which contains a new line What is the root cause of that problem?We are setting cursor position in below part when pasting. App/src/hooks/useHtmlPaste/index.ts Lines 19 to 20 in fb14d5a
When pasted text contains empty line, the value of What changes do you think we should make in order to solve the problem?We have to set range with What alternative solutions did you explore? (Optional) |
📣 @moonstar-95515! 📣
|
Doesn't seem to be related to #42112 as that is resolved. I can still reproduce this - adding external |
Job added to Upwork: https://www.upwork.com/jobs/~01cc45b59ee9c4ae02 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @eVoloshchak ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Web - Composer - Cursor positioned at the start if pasting text which contains a new line What is the root cause of that problem?In the App/src/hooks/useHtmlPaste/index.ts Line 10 in e6c9f06
What changes do you think we should make in order to solve the problem?Creating a new text variable with stripped newline characters at the end or modifying reusing the same text would work fine.
What alternative solutions did you explore? (Optional)None |
ProposalPlease re-state the problem that we are trying to solve in this issue.when pasting text containing a new empty line into the chat compose box, the cursor incorrectly positions itself at the start of the text instead of the end and a console error occurs. What is the root cause of that problem?The root cause of the problem is that the cursor positioning logic in the insertAtCaret function incorrectly handles the insertion of text containing new lines. Specifically, the cursor is not being moved to the correct position (the end of the newly inserted text) when the text includes empty new lines, which causes the cursor to appear at the start of the text. Additionally, there is no proper error handling to catch and log any potential issues during the paste operation, leading to console errors. What changes do you think we should make in order to solve the problem?a)
modified code:
b)
modified code:
c)
modified code:
Summary of Changes1.Cursor Positioning Fix: Updated the insertAtCaret function to use range.setStartAfter(node) and range.setEndAfter(node) to correctly position the cursor at the end of the newly inserted text, especially when new lines are involved. 2.Error Handling: Added console.error logging within the paste function to handle and log any exceptions that occur during the paste operation, making it easier to debug issues. What alternative solutions did you explore? (Optional)None Contributor details |
📣 @RickDeb2004! 📣
|
hi @eVoloshchak can you take a peek at these proposals when you have a moment? TY! |
I think we should proceed with @rakhaxor's proposal, it's clean and straightforward. It does cut off all of the new lines at the end of the pasted text, but that's what the backend does when you send the message, so this can be considered a small improvement 🎀👀🎀 C+ reviewed! |
Triggered auto assignment to @AndrewGable, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 @rakhaxor You have been assigned to this job! |
My proposal works when it has 3 or more new lines at the end, as the text will be |
@eVoloshchak cc: @Christinadobrzyn @AndrewGable
I can't sure if I understood correctly, but I think only new lines at the end of the text will be cut on backend side. test.mp4 |
@eVoloshchak Thank you for accepting my proposal! This is my first time contributing and I just applied to the Upwork job like 3-4 hours ago. Do I need to do some further action before my upwork proposal is accepted and do I need to wait for it to be accepted before I could raise my PR? |
@eVoloshchak cc: @Christinadobrzyn @AndrewGable
What do you think about my suggestion? Could you please check? Thank you. |
Dmd @eVoloshchak to see if he can take a peek at the recent comments. Thanks! |
@moonstar-95515, thank you for #42216 (comment), good catch, this is a case I've missed and it's definitely not the desired behavior. I think we should proceed with @moonstar-95515's proposal Apologies for the confusion folks |
Hello @eVoloshchak, @AndrewGable! I have already sent proposal on Upwork and about to raise a PR. I think this is not a good way since I have put a lot of my time on it setting up everything. And my solution works as needed. Also for the moonstar's proposal, I believe he posted a video where he got "hi" text below the text he is writing, so it is working but I am not sure it would work with multiple lines in case there are newlines after the last character. |
I've tested my proposal with multiple lines at the end and it's working properly. |
Hi, @AndrewGable |
@AndrewGable @eVoloshchak @rakhaxor @Christinadobrzyn this issue was created 2 weeks ago. Are we close to approving a proposal? If not, what's blocking us from getting this issue assigned? Don't hesitate to create a thread in #expensify-open-source to align faster in real time. Thanks! |
Double-checking with @AndrewGable that we're good with #42216 (comment) |
The BZ member will need to manually hire moonstar-95515 for the Contributor role. Please store your Upwork details and apply to our Upwork job so this process is automatic in the future! |
@eVoloshchak : There is already a PR in progress for this issue. I think this is duplicate. |
Hi, @eVoloshchak |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 1.4.74-0
Reproducible in staging?: y
Reproducible in production?: y
Issue reported by: Applause - Internal Team
Action Performed:
Expected Result:
The cursor gets positioned at the end of the pasted text, no console error
Actual Result:
The cursor gets positioned at the start of the pasted text if the pasted text contains a new empty line, console error is showing
Workaround:
n/a
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6481716_1715782332852.bandicam_2024-05-15_17-07-29-894.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: