Commit 8f3b32a
committed
fix: compute expanded cursor from Lexical editor for mid-text @file autocomplete
expandCollapsedComposerCursor uses a regex to find mentions in raw text,
which false-matches plain text like @in when the user types @ before an
existing word. This corrupts the cursor mapping and prevents trigger
detection from firing.
Compute the expanded cursor directly from the Lexical editor's node tree,
which knows which nodes are actual ComposerMentionNode instances. Pass this
expanded cursor through onChange and readSnapshot so detectComposerTrigger
receives the correct text offset.
Closes #291
Related to #9221 parent ff6a66d commit 8f3b32a
File tree
3 files changed
+167
-27
lines changed- apps/web/src
- components
3 files changed
+167
-27
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
62 | 61 | | |
63 | 62 | | |
64 | 63 | | |
| |||
1039 | 1038 | | |
1040 | 1039 | | |
1041 | 1040 | | |
1042 | | - | |
1043 | | - | |
1044 | | - | |
1045 | | - | |
| 1041 | + | |
1046 | 1042 | | |
1047 | 1043 | | |
1048 | 1044 | | |
| |||
2930 | 2926 | | |
2931 | 2927 | | |
2932 | 2928 | | |
2933 | | - | |
| 2929 | + | |
| 2930 | + | |
| 2931 | + | |
| 2932 | + | |
| 2933 | + | |
| 2934 | + | |
| 2935 | + | |
2934 | 2936 | | |
2935 | 2937 | | |
2936 | 2938 | | |
| |||
2947 | 2949 | | |
2948 | 2950 | | |
2949 | 2951 | | |
2950 | | - | |
2951 | | - | |
2952 | | - | |
| 2952 | + | |
2953 | 2953 | | |
2954 | 2954 | | |
2955 | 2955 | | |
| |||
3311 | 3311 | | |
3312 | 3312 | | |
3313 | 3313 | | |
3314 | | - | |
| 3314 | + | |
| 3315 | + | |
| 3316 | + | |
| 3317 | + | |
| 3318 | + | |
3315 | 3319 | | |
3316 | 3320 | | |
3317 | 3321 | | |
3318 | 3322 | | |
3319 | | - | |
| 3323 | + | |
3320 | 3324 | | |
3321 | 3325 | | |
3322 | 3326 | | |
3323 | 3327 | | |
3324 | 3328 | | |
3325 | 3329 | | |
3326 | 3330 | | |
3327 | | - | |
3328 | 3331 | | |
3329 | 3332 | | |
3330 | | - | |
| 3333 | + | |
3331 | 3334 | | |
3332 | 3335 | | |
3333 | 3336 | | |
| |||
3415 | 3418 | | |
3416 | 3419 | | |
3417 | 3420 | | |
3418 | | - | |
| 3421 | + | |
| 3422 | + | |
| 3423 | + | |
| 3424 | + | |
| 3425 | + | |
| 3426 | + | |
3419 | 3427 | | |
3420 | 3428 | | |
3421 | 3429 | | |
3422 | 3430 | | |
3423 | 3431 | | |
| 3432 | + | |
3424 | 3433 | | |
3425 | 3434 | | |
3426 | 3435 | | |
| |||
3429 | 3438 | | |
3430 | 3439 | | |
3431 | 3440 | | |
3432 | | - | |
3433 | | - | |
3434 | | - | |
3435 | | - | |
3436 | | - | |
3437 | | - | |
| 3441 | + | |
3438 | 3442 | | |
3439 | 3443 | | |
3440 | 3444 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
192 | 192 | | |
193 | 193 | | |
194 | 194 | | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
195 | 210 | | |
196 | 211 | | |
197 | 212 | | |
| |||
236 | 251 | | |
237 | 252 | | |
238 | 253 | | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
239 | 298 | | |
240 | 299 | | |
241 | 300 | | |
| |||
350 | 409 | | |
351 | 410 | | |
352 | 411 | | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
353 | 423 | | |
354 | 424 | | |
355 | 425 | | |
| |||
383 | 453 | | |
384 | 454 | | |
385 | 455 | | |
386 | | - | |
| 456 | + | |
387 | 457 | | |
388 | 458 | | |
389 | 459 | | |
| |||
392 | 462 | | |
393 | 463 | | |
394 | 464 | | |
395 | | - | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
396 | 471 | | |
397 | 472 | | |
398 | 473 | | |
| |||
672 | 747 | | |
673 | 748 | | |
674 | 749 | | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
675 | 753 | | |
676 | 754 | | |
677 | 755 | | |
678 | 756 | | |
679 | | - | |
| 757 | + | |
680 | 758 | | |
681 | 759 | | |
682 | 760 | | |
683 | 761 | | |
684 | | - | |
685 | | - | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
686 | 771 | | |
687 | 772 | | |
688 | 773 | | |
689 | 774 | | |
690 | 775 | | |
691 | 776 | | |
692 | 777 | | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
693 | 782 | | |
694 | 783 | | |
695 | 784 | | |
| 785 | + | |
696 | 786 | | |
697 | 787 | | |
698 | | - | |
| 788 | + | |
699 | 789 | | |
700 | 790 | | |
701 | 791 | | |
| |||
724 | 814 | | |
725 | 815 | | |
726 | 816 | | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
727 | 821 | | |
728 | 822 | | |
729 | 823 | | |
| |||
735 | 829 | | |
736 | 830 | | |
737 | 831 | | |
738 | | - | |
| 832 | + | |
739 | 833 | | |
740 | 834 | | |
741 | 835 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
59 | 87 | | |
60 | 88 | | |
61 | 89 | | |
| |||
90 | 118 | | |
91 | 119 | | |
92 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
93 | 135 | | |
94 | 136 | | |
95 | 137 | | |
| |||
0 commit comments