Commit 2aa8288
authored
fix: Ensure correct caret placement and rect calculation after paste (#1238)
[CLNP-5528](https://sendbird.atlassian.net/browse/CLNP-5528)
[SBISSUE-17384](https://sendbird.atlassian.net/browse/SBISSUE-17384)
This PR resolves an issue where `getBoundingClientRect()` would return
`(0, 0, 0, 0)` after a paste operation due to improper caret placement.
The following changes ensure accurate caret positioning and consistent
rect values:
1. **Zero-width space (`\u200B`)**: Appended to the pasted content to
ensure the caret has a valid text node to reside in.
2. **Selection and Range Synchronization**: The range is collapsed and
selection is reset to align with the updated DOM.
3. **Caret Adjustment**: The caret is moved to the end of the newly
inserted content to maintain user expectation.
[CLNP-5528]:
https://sendbird.atlassian.net/browse/CLNP-5528?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[SBISSUE-17384]:
https://sendbird.atlassian.net/browse/SBISSUE-17384?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ1 parent 2b1ab97 commit 2aa8288
2 files changed
+94
-69
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
17 | 37 | | |
18 | 38 | | |
19 | 39 | | |
| |||
22 | 42 | | |
23 | 43 | | |
24 | 44 | | |
| 45 | + | |
25 | 46 | | |
26 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
27 | 50 | | |
28 | | - | |
29 | | - | |
| 51 | + | |
30 | 52 | | |
31 | 53 | | |
32 | 54 | | |
33 | 55 | | |
34 | | - | |
| 56 | + | |
35 | 57 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
| 58 | + | |
| 59 | + | |
54 | 60 | | |
55 | | - | |
56 | | - | |
57 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
58 | 65 | | |
| 66 | + | |
| 67 | + | |
59 | 68 | | |
60 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
61 | 79 | | |
62 | 80 | | |
63 | 81 | | |
| |||
78 | 96 | | |
79 | 97 | | |
80 | 98 | | |
81 | | - | |
| 99 | + | |
82 | 100 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | 35 | | |
55 | 36 | | |
56 | 37 | | |
| |||
425 | 406 | | |
426 | 407 | | |
427 | 408 | | |
428 | | - | |
429 | | - | |
430 | | - | |
431 | | - | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
432 | 436 | | |
433 | 437 | | |
434 | 438 | | |
| |||
456 | 460 | | |
457 | 461 | | |
458 | 462 | | |
459 | | - | |
| 463 | + | |
460 | 464 | | |
461 | 465 | | |
462 | 466 | | |
| |||
487 | 491 | | |
488 | 492 | | |
489 | 493 | | |
490 | | - | |
491 | | - | |
| 494 | + | |
| 495 | + | |
492 | 496 | | |
493 | 497 | | |
494 | 498 | | |
495 | 499 | | |
496 | 500 | | |
497 | 501 | | |
498 | | - | |
499 | | - | |
| 502 | + | |
| 503 | + | |
500 | 504 | | |
501 | | - | |
502 | | - | |
| 505 | + | |
| 506 | + | |
503 | 507 | | |
504 | 508 | | |
505 | 509 | | |
506 | | - | |
507 | | - | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
508 | 515 | | |
509 | 516 | | |
510 | 517 | | |
| |||
0 commit comments