Commit 14f042f
authored
fix(ui): autosave not queued while background process is in flight (#14805)
When editing fields while an autosave is in flight, subsequent autosave
events are not queued as expected. This results in inconsistency between
what appears on the screen and what is persisted to the database, due to
race conditions in background processing.
For example:
https://github.com/user-attachments/assets/010f846c-ed07-4594-883e-3c60114e9f9e
This is especially noticeable in virtual fields, `useAsTitle`, and Live
Preview, where the displayed values are a direct representation of the
database, not local to form state.
The problem is related to how we manage `modified` form context. After
successful submissions, we set this flag to false. This means if the
user had made underlying changes to the form while a previous submission
was processing, e.g. an autosave, the modified state gets wrongfully
cleared and the next autosave bails out.
Potentially related: #126911 parent 7520140 commit 14f042f
File tree
3 files changed
+121
-33
lines changed- packages/ui/src
- elements/Autosave
- forms/Form
- test/form-state
3 files changed
+121
-33
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | 78 | | |
97 | 79 | | |
98 | 80 | | |
| |||
130 | 112 | | |
131 | 113 | | |
132 | 114 | | |
133 | | - | |
| 115 | + | |
134 | 116 | | |
135 | 117 | | |
136 | 118 | | |
137 | 119 | | |
138 | 120 | | |
139 | | - | |
| 121 | + | |
140 | 122 | | |
141 | 123 | | |
142 | 124 | | |
143 | | - | |
| 125 | + | |
144 | 126 | | |
145 | 127 | | |
146 | 128 | | |
147 | | - | |
| 129 | + | |
148 | 130 | | |
149 | 131 | | |
150 | 132 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
| 110 | + | |
110 | 111 | | |
111 | 112 | | |
112 | 113 | | |
| |||
116 | 117 | | |
117 | 118 | | |
118 | 119 | | |
119 | | - | |
120 | 120 | | |
121 | | - | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
122 | 164 | | |
123 | 165 | | |
124 | 166 | | |
| |||
360 | 402 | | |
361 | 403 | | |
362 | 404 | | |
363 | | - | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
364 | 411 | | |
365 | 412 | | |
366 | 413 | | |
| |||
412 | 459 | | |
413 | 460 | | |
414 | 461 | | |
| 462 | + | |
415 | 463 | | |
416 | 464 | | |
417 | 465 | | |
| |||
498 | 546 | | |
499 | 547 | | |
500 | 548 | | |
| 549 | + | |
| 550 | + | |
501 | 551 | | |
502 | 552 | | |
503 | 553 | | |
| |||
612 | 662 | | |
613 | 663 | | |
614 | 664 | | |
| 665 | + | |
615 | 666 | | |
616 | 667 | | |
617 | 668 | | |
| |||
621 | 672 | | |
622 | 673 | | |
623 | 674 | | |
624 | | - | |
| 675 | + | |
625 | 676 | | |
626 | 677 | | |
627 | 678 | | |
| |||
641 | 692 | | |
642 | 693 | | |
643 | 694 | | |
644 | | - | |
| 695 | + | |
645 | 696 | | |
646 | 697 | | |
647 | 698 | | |
| |||
655 | 706 | | |
656 | 707 | | |
657 | 708 | | |
658 | | - | |
| 709 | + | |
659 | 710 | | |
660 | 711 | | |
661 | 712 | | |
| |||
664 | 715 | | |
665 | 716 | | |
666 | 717 | | |
667 | | - | |
| 718 | + | |
668 | 719 | | |
669 | 720 | | |
670 | 721 | | |
| |||
682 | 733 | | |
683 | 734 | | |
684 | 735 | | |
685 | | - | |
| 736 | + | |
686 | 737 | | |
687 | 738 | | |
688 | 739 | | |
| |||
763 | 814 | | |
764 | 815 | | |
765 | 816 | | |
766 | | - | |
| 817 | + | |
767 | 818 | | |
768 | 819 | | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
769 | 824 | | |
770 | 825 | | |
771 | 826 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
21 | | - | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
487 | 488 | | |
488 | 489 | | |
489 | 490 | | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
490 | 539 | | |
491 | 540 | | |
492 | 541 | | |
493 | 542 | | |
494 | 543 | | |
495 | 544 | | |
496 | 545 | | |
| 546 | + | |
497 | 547 | | |
498 | 548 | | |
499 | 549 | | |
| |||
580 | 630 | | |
581 | 631 | | |
582 | 632 | | |
| 633 | + | |
583 | 634 | | |
584 | 635 | | |
585 | 636 | | |
| |||
0 commit comments