Commit c437b2e
authored
fix(tldraw): tighten page menu list height (tldraw#8924)
In order to make the page menu fit its rows without extra trailing space
and surface the max-pages limit in the UI, this PR auto-fits the list to
the row stack, lowers the resize minimum to one row, refactors the
resize handle into a flush 1px divider with a separate hit-test area,
and always renders the create button (disabled with a "Maximum pages
reached" tooltip when the page count hits `editor.options.maxPages`).
Closes tldraw#8862.
### Change type
- [x] `bugfix`
### Test plan
1. Open the page menu with multiple pages and confirm the list fits the
row stack with no trailing space.
2. Drag the resize handle upward and confirm it stops at a one-row
height.
3. Drag the resize handle downward, then double-click it and confirm the
list resets to the auto-fit height.
4. Create pages up to `maxPages` and confirm the create button stays
visible, becomes disabled, drops its `+` icon, and shows the "Maximum
pages reached" tooltip.
- [ ] Unit tests
- [x] End to end tests
### Release notes
- Fix the page menu list height so it no longer leaves extra trailing
space when opened, resized, or reset.
- Keep the create-page button visible when the page limit is reached,
disabled with a "Maximum pages reached" tooltip.
### API changes
- Added `'page-menu.max-pages-reached'` to `TLUiTranslationKey` and
`DEFAULT_TRANSLATION`.
### Code changes
| Section | LOC change |
| --------------- | ---------- |
| Core code | +53 / -33 |
| Tests | +54 / -0 |
| Automated files | +1 / -1 |1 parent 71ccc2a commit c437b2e
7 files changed
Lines changed: 119 additions & 34 deletions
File tree
- apps/examples/e2e/tests
- assets/translations
- packages/tldraw
- src/lib
- ui
- components/PageMenu
- hooks/useTranslation
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
8 | 14 | | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
12 | 18 | | |
13 | 19 | | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
14 | 47 | | |
15 | 48 | | |
16 | 49 | | |
| |||
49 | 82 | | |
50 | 83 | | |
51 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
52 | 116 | | |
53 | 117 | | |
54 | 118 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| 335 | + | |
335 | 336 | | |
336 | 337 | | |
337 | 338 | | |
| |||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
813 | 813 | | |
814 | 814 | | |
815 | 815 | | |
| 816 | + | |
816 | 817 | | |
817 | 818 | | |
818 | 819 | | |
819 | 820 | | |
820 | 821 | | |
821 | | - | |
822 | | - | |
| 822 | + | |
823 | 823 | | |
824 | 824 | | |
| 825 | + | |
| 826 | + | |
825 | 827 | | |
826 | 828 | | |
827 | 829 | | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
828 | 841 | | |
829 | 842 | | |
830 | 843 | | |
831 | | - | |
| 844 | + | |
832 | 845 | | |
833 | 846 | | |
834 | | - | |
835 | | - | |
836 | | - | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
837 | 851 | | |
838 | 852 | | |
839 | 853 | | |
| |||
Lines changed: 31 additions & 27 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | 29 | | |
31 | | - | |
32 | | - | |
33 | | - | |
| 30 | + | |
34 | 31 | | |
35 | 32 | | |
36 | | - | |
| 33 | + | |
37 | 34 | | |
| 35 | + | |
38 | 36 | | |
39 | 37 | | |
40 | 38 | | |
| |||
53 | 51 | | |
54 | 52 | | |
55 | 53 | | |
56 | | - | |
| 54 | + | |
57 | 55 | | |
58 | 56 | | |
59 | 57 | | |
60 | 58 | | |
61 | | - | |
62 | | - | |
63 | | - | |
| 59 | + | |
64 | 60 | | |
65 | 61 | | |
66 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
149 | 152 | | |
150 | 153 | | |
151 | 154 | | |
152 | | - | |
153 | | - | |
154 | | - | |
| 155 | + | |
| 156 | + | |
155 | 157 | | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
156 | 162 | | |
157 | 163 | | |
158 | 164 | | |
| |||
537 | 543 | | |
538 | 544 | | |
539 | 545 | | |
540 | | - | |
| 546 | + | |
541 | 547 | | |
542 | 548 | | |
543 | 549 | | |
| |||
678 | 684 | | |
679 | 685 | | |
680 | 686 | | |
681 | | - | |
682 | | - | |
683 | | - | |
684 | | - | |
685 | | - | |
686 | | - | |
687 | | - | |
688 | | - | |
689 | | - | |
690 | | - | |
691 | | - | |
692 | | - | |
693 | | - | |
694 | | - | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
695 | 699 | | |
696 | 700 | | |
697 | 701 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
336 | 336 | | |
337 | 337 | | |
338 | 338 | | |
| 339 | + | |
339 | 340 | | |
340 | 341 | | |
341 | 342 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
| 340 | + | |
340 | 341 | | |
341 | 342 | | |
342 | 343 | | |
| |||
0 commit comments