Commit fa71c0a
Evie Gauthier
feat(threads): implement thread side panel with full functionality
- Add ThreadDrawer component with message rendering and input
- Add ThreadBrowser panel for viewing all threads in a room
- Add thread chips on messages showing reply count and participants
- Enable message actions in threads (edit, react, reply, delete)
- Add emoji and sticker rendering support in threads
- Filter thread replies from main timeline to avoid duplicates
- Auto-create Thread objects when starting threads or syncing from other devices
- Add unread thread badge to header icon (Discord-style)
- Auto-open thread drawer when navigating to thread events from notifications
- Reorder room header icons: search, pinned, threads, widgets, members, more
- Add automatic read receipts when viewing threads
Fixes thread browser showing empty list and inbox notifications not opening threads.1 parent 83d20e0 commit fa71c0a
18 files changed
Lines changed: 2335 additions & 67 deletions
File tree
- .changeset
- src
- app
- components/editor
- features
- room
- thread-mockup
- pages
- client
- state/room
- types
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | 29 | | |
37 | 30 | | |
38 | 31 | | |
| |||
96 | 89 | | |
97 | 90 | | |
98 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
99 | 101 | | |
100 | 102 | | |
101 | 103 | | |
| |||
132 | 134 | | |
133 | 135 | | |
134 | 136 | | |
135 | | - | |
| 137 | + | |
136 | 138 | | |
137 | 139 | | |
138 | 140 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| 24 | + | |
| 25 | + | |
22 | 26 | | |
23 | 27 | | |
24 | 28 | | |
| |||
32 | 36 | | |
33 | 37 | | |
34 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
35 | 63 | | |
36 | 64 | | |
37 | 65 | | |
| |||
49 | 77 | | |
50 | 78 | | |
51 | 79 | | |
52 | | - | |
| 80 | + | |
53 | 81 | | |
54 | 82 | | |
55 | 83 | | |
| |||
87 | 115 | | |
88 | 116 | | |
89 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 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 | + | |
90 | 164 | | |
91 | 165 | | |
92 | 166 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
185 | 185 | | |
186 | 186 | | |
187 | 187 | | |
| 188 | + | |
188 | 189 | | |
189 | 190 | | |
190 | | - | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
191 | 195 | | |
192 | 196 | | |
193 | 197 | | |
| |||
203 | 207 | | |
204 | 208 | | |
205 | 209 | | |
206 | | - | |
207 | | - | |
| 210 | + | |
| 211 | + | |
208 | 212 | | |
209 | 213 | | |
210 | 214 | | |
| |||
213 | 217 | | |
214 | 218 | | |
215 | 219 | | |
216 | | - | |
| 220 | + | |
217 | 221 | | |
218 | 222 | | |
219 | 223 | | |
| |||
326 | 330 | | |
327 | 331 | | |
328 | 332 | | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
329 | 353 | | |
330 | 354 | | |
331 | 355 | | |
| |||
341 | 365 | | |
342 | 366 | | |
343 | 367 | | |
344 | | - | |
| 368 | + | |
345 | 369 | | |
346 | 370 | | |
347 | 371 | | |
| |||
409 | 433 | | |
410 | 434 | | |
411 | 435 | | |
412 | | - | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
413 | 446 | | |
414 | 447 | | |
415 | 448 | | |
416 | 449 | | |
417 | | - | |
| 450 | + | |
418 | 451 | | |
419 | 452 | | |
420 | 453 | | |
| |||
537 | 570 | | |
538 | 571 | | |
539 | 572 | | |
540 | | - | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
541 | 584 | | |
542 | 585 | | |
543 | 586 | | |
| |||
561 | 604 | | |
562 | 605 | | |
563 | 606 | | |
564 | | - | |
| 607 | + | |
565 | 608 | | |
566 | 609 | | |
567 | 610 | | |
| |||
570 | 613 | | |
571 | 614 | | |
572 | 615 | | |
573 | | - | |
| 616 | + | |
574 | 617 | | |
575 | 618 | | |
576 | 619 | | |
| |||
580 | 623 | | |
581 | 624 | | |
582 | 625 | | |
| 626 | + | |
583 | 627 | | |
584 | 628 | | |
585 | 629 | | |
| |||
683 | 727 | | |
684 | 728 | | |
685 | 729 | | |
686 | | - | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
687 | 740 | | |
688 | 741 | | |
689 | 742 | | |
| |||
841 | 894 | | |
842 | 895 | | |
843 | 896 | | |
844 | | - | |
| 897 | + | |
845 | 898 | | |
846 | 899 | | |
847 | 900 | | |
| |||
0 commit comments