@remit/web-client 0.0.230 → 0.0.231
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/calendar/CalendarComposePane.stories.tsx +25 -0
- package/src/components/calendar/CalendarComposePane.tsx +34 -0
- package/src/components/calendar/CalendarEventPane.stories.tsx +81 -0
- package/src/components/calendar/CalendarEventPane.tsx +67 -0
- package/src/components/calendar/CalendarShell.tsx +83 -0
- package/src/components/calendar/CalendarViewPlaceholder.tsx +37 -0
- package/src/components/calendar/CalendarWorkspace.stories.tsx +197 -0
- package/src/components/calendar/CalendarWorkspace.tsx +162 -0
- package/src/components/calendar/OpenCalendarEvent.tsx +39 -0
- package/src/components/calendar/calendar-workspace.render.test.ts +193 -0
- package/src/components/mail/MailSidebarAdapter.tsx +17 -0
- package/src/hooks/useCalendarData.ts +72 -0
- package/src/lib/calendar-density.ts +34 -0
- package/src/lib/calendar-fixtures.ts +207 -0
- package/src/lib/calendar-format.ts +29 -0
- package/src/lib/calendar-route.test.ts +210 -0
- package/src/lib/calendar-route.ts +183 -0
- package/src/lib/search-params.test.ts +77 -0
- package/src/lib/search-params.ts +59 -0
- package/src/routeTree.gen.ts +199 -0
- package/src/router.tsx +5 -0
- package/src/routes/calendar/$view.$date/$calendarObjectId/$recurrenceId.tsx +26 -0
- package/src/routes/calendar/$view.$date/$calendarObjectId/index.tsx +18 -0
- package/src/routes/calendar/$view.$date/$calendarObjectId.tsx +15 -0
- package/src/routes/calendar/$view.$date/index.tsx +25 -0
- package/src/routes/calendar/$view.$date/new.tsx +20 -0
- package/src/routes/calendar/$view.$date.tsx +100 -0
- package/src/routes/calendar/-calendar-tree.test.ts +267 -0
- package/src/routes/calendar/index.tsx +27 -0
- package/src/routes/calendar.tsx +98 -0
- package/src/routing/calendar-fragment.test.ts +66 -0
- package/src/routing/calendar.ts +139 -0
- package/src/routing/fragment.ts +19 -0
- package/src/routing/index.ts +10 -0
- package/src/routing/nav-selection.ts +2 -0
package/src/routeTree.gen.ts
CHANGED
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
import { Route as rootRouteImport } from './routes/__root'
|
|
12
12
|
import { Route as IndexRouteImport } from './routes/index'
|
|
13
|
+
import { Route as CalendarRouteImport } from './routes/calendar'
|
|
13
14
|
import { Route as ImportRouteImport } from './routes/import'
|
|
14
15
|
import { Route as MailRouteImport } from './routes/mail'
|
|
15
16
|
import { Route as OnboardingRouteImport } from './routes/onboarding'
|
|
16
17
|
import { Route as SettingsRouteImport } from './routes/settings'
|
|
18
|
+
import { Route as CalendarIndexRouteImport } from './routes/calendar/index'
|
|
17
19
|
import { Route as MailIndexRouteImport } from './routes/mail/index'
|
|
18
20
|
import { Route as MailMailboxIdRouteImport } from './routes/mail/$mailboxId'
|
|
19
21
|
import { Route as MailBriefRouteImport } from './routes/mail/brief'
|
|
@@ -28,6 +30,7 @@ import { Route as SettingsFoldersRouteImport } from './routes/settings/folders'
|
|
|
28
30
|
import { Route as SettingsLabelsRouteImport } from './routes/settings/labels'
|
|
29
31
|
import { Route as SettingsSendersRouteImport } from './routes/settings/senders'
|
|
30
32
|
import { Route as SettingsSuggestedVipsRouteImport } from './routes/settings/suggested-vips'
|
|
33
|
+
import { Route as CalendarViewDateRouteImport } from './routes/calendar/$view.$date'
|
|
31
34
|
import { Route as MailMailboxIdIndexRouteImport } from './routes/mail/$mailboxId/index'
|
|
32
35
|
import { Route as MailMailboxIdThreadIdRouteImport } from './routes/mail/$mailboxId/$threadId'
|
|
33
36
|
import { Route as MailBriefIndexRouteImport } from './routes/mail/brief/index'
|
|
@@ -35,6 +38,9 @@ import { Route as MailBriefThreadIdRouteImport } from './routes/mail/brief/$thre
|
|
|
35
38
|
import { Route as MailFlaggedIndexRouteImport } from './routes/mail/flagged/index'
|
|
36
39
|
import { Route as MailFlaggedThreadIdRouteImport } from './routes/mail/flagged/$threadId'
|
|
37
40
|
import { Route as MailOutboxIndexRouteImport } from './routes/mail/outbox/index'
|
|
41
|
+
import { Route as CalendarViewDateIndexRouteImport } from './routes/calendar/$view.$date/index'
|
|
42
|
+
import { Route as CalendarViewDateCalendarObjectIdRouteImport } from './routes/calendar/$view.$date/$calendarObjectId'
|
|
43
|
+
import { Route as CalendarViewDateNewRouteImport } from './routes/calendar/$view.$date/new'
|
|
38
44
|
import { Route as MailMailboxIdThreadIdIndexRouteImport } from './routes/mail/$mailboxId/$threadId/index'
|
|
39
45
|
import { Route as MailMailboxIdThreadIdMessageIdRouteImport } from './routes/mail/$mailboxId/$threadId/$messageId'
|
|
40
46
|
import { Route as MailMailboxIdComposeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/$mailboxId/compose.{-$outboxMessageId}'
|
|
@@ -46,6 +52,8 @@ import { Route as MailFlaggedThreadIdMessageIdRouteImport } from './routes/mail/
|
|
|
46
52
|
import { Route as MailFlaggedComposeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/flagged/compose.{-$outboxMessageId}'
|
|
47
53
|
import { Route as MailOutboxComposeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/outbox/compose.{-$outboxMessageId}'
|
|
48
54
|
import { Route as MailOutboxDraftOutboxMessageIdRouteImport } from './routes/mail/outbox/draft/$outboxMessageId'
|
|
55
|
+
import { Route as CalendarViewDateCalendarObjectIdIndexRouteImport } from './routes/calendar/$view.$date/$calendarObjectId/index'
|
|
56
|
+
import { Route as CalendarViewDateCalendarObjectIdRecurrenceIdRouteImport } from './routes/calendar/$view.$date/$calendarObjectId/$recurrenceId'
|
|
49
57
|
import { Route as MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/$mailboxId/$threadId/$messageId/$mode.{-$outboxMessageId}'
|
|
50
58
|
import { Route as MailBriefThreadIdMessageIdModeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/brief/$threadId/$messageId/$mode.{-$outboxMessageId}'
|
|
51
59
|
import { Route as MailFlaggedThreadIdMessageIdModeChar123OutboxMessageIdChar125RouteImport } from './routes/mail/flagged/$threadId/$messageId/$mode.{-$outboxMessageId}'
|
|
@@ -55,6 +63,11 @@ const IndexRoute = IndexRouteImport.update({
|
|
|
55
63
|
path: '/',
|
|
56
64
|
getParentRoute: () => rootRouteImport,
|
|
57
65
|
} as any)
|
|
66
|
+
const CalendarRoute = CalendarRouteImport.update({
|
|
67
|
+
id: '/calendar',
|
|
68
|
+
path: '/calendar',
|
|
69
|
+
getParentRoute: () => rootRouteImport,
|
|
70
|
+
} as any)
|
|
58
71
|
const ImportRoute = ImportRouteImport.update({
|
|
59
72
|
id: '/import',
|
|
60
73
|
path: '/import',
|
|
@@ -75,6 +88,11 @@ const SettingsRoute = SettingsRouteImport.update({
|
|
|
75
88
|
path: '/settings',
|
|
76
89
|
getParentRoute: () => rootRouteImport,
|
|
77
90
|
} as any)
|
|
91
|
+
const CalendarIndexRoute = CalendarIndexRouteImport.update({
|
|
92
|
+
id: '/',
|
|
93
|
+
path: '/',
|
|
94
|
+
getParentRoute: () => CalendarRoute,
|
|
95
|
+
} as any)
|
|
78
96
|
const MailIndexRoute = MailIndexRouteImport.update({
|
|
79
97
|
id: '/',
|
|
80
98
|
path: '/',
|
|
@@ -145,6 +163,11 @@ const SettingsSuggestedVipsRoute = SettingsSuggestedVipsRouteImport.update({
|
|
|
145
163
|
path: '/suggested-vips',
|
|
146
164
|
getParentRoute: () => SettingsRoute,
|
|
147
165
|
} as any)
|
|
166
|
+
const CalendarViewDateRoute = CalendarViewDateRouteImport.update({
|
|
167
|
+
id: '/$view/$date',
|
|
168
|
+
path: '/$view/$date',
|
|
169
|
+
getParentRoute: () => CalendarRoute,
|
|
170
|
+
} as any)
|
|
148
171
|
const MailMailboxIdIndexRoute = MailMailboxIdIndexRouteImport.update({
|
|
149
172
|
id: '/',
|
|
150
173
|
path: '/',
|
|
@@ -180,6 +203,22 @@ const MailOutboxIndexRoute = MailOutboxIndexRouteImport.update({
|
|
|
180
203
|
path: '/',
|
|
181
204
|
getParentRoute: () => MailOutboxRoute,
|
|
182
205
|
} as any)
|
|
206
|
+
const CalendarViewDateIndexRoute = CalendarViewDateIndexRouteImport.update({
|
|
207
|
+
id: '/',
|
|
208
|
+
path: '/',
|
|
209
|
+
getParentRoute: () => CalendarViewDateRoute,
|
|
210
|
+
} as any)
|
|
211
|
+
const CalendarViewDateCalendarObjectIdRoute =
|
|
212
|
+
CalendarViewDateCalendarObjectIdRouteImport.update({
|
|
213
|
+
id: '/$calendarObjectId',
|
|
214
|
+
path: '/$calendarObjectId',
|
|
215
|
+
getParentRoute: () => CalendarViewDateRoute,
|
|
216
|
+
} as any)
|
|
217
|
+
const CalendarViewDateNewRoute = CalendarViewDateNewRouteImport.update({
|
|
218
|
+
id: '/new',
|
|
219
|
+
path: '/new',
|
|
220
|
+
getParentRoute: () => CalendarViewDateRoute,
|
|
221
|
+
} as any)
|
|
183
222
|
const MailMailboxIdThreadIdIndexRoute =
|
|
184
223
|
MailMailboxIdThreadIdIndexRouteImport.update({
|
|
185
224
|
id: '/',
|
|
@@ -245,6 +284,18 @@ const MailOutboxDraftOutboxMessageIdRoute =
|
|
|
245
284
|
path: '/draft/$outboxMessageId',
|
|
246
285
|
getParentRoute: () => MailOutboxRoute,
|
|
247
286
|
} as any)
|
|
287
|
+
const CalendarViewDateCalendarObjectIdIndexRoute =
|
|
288
|
+
CalendarViewDateCalendarObjectIdIndexRouteImport.update({
|
|
289
|
+
id: '/',
|
|
290
|
+
path: '/',
|
|
291
|
+
getParentRoute: () => CalendarViewDateCalendarObjectIdRoute,
|
|
292
|
+
} as any)
|
|
293
|
+
const CalendarViewDateCalendarObjectIdRecurrenceIdRoute =
|
|
294
|
+
CalendarViewDateCalendarObjectIdRecurrenceIdRouteImport.update({
|
|
295
|
+
id: '/$recurrenceId',
|
|
296
|
+
path: '/$recurrenceId',
|
|
297
|
+
getParentRoute: () => CalendarViewDateCalendarObjectIdRoute,
|
|
298
|
+
} as any)
|
|
248
299
|
const MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route =
|
|
249
300
|
MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125RouteImport.update(
|
|
250
301
|
{
|
|
@@ -272,6 +323,7 @@ const MailFlaggedThreadIdMessageIdModeChar123OutboxMessageIdChar125Route =
|
|
|
272
323
|
|
|
273
324
|
export interface FileRoutesByFullPath {
|
|
274
325
|
'/': typeof IndexRoute
|
|
326
|
+
'/calendar': typeof CalendarRouteWithChildren
|
|
275
327
|
'/import': typeof ImportRoute
|
|
276
328
|
'/mail': typeof MailRouteWithChildren
|
|
277
329
|
'/onboarding': typeof OnboardingRoute
|
|
@@ -288,8 +340,10 @@ export interface FileRoutesByFullPath {
|
|
|
288
340
|
'/settings/labels': typeof SettingsLabelsRoute
|
|
289
341
|
'/settings/senders': typeof SettingsSendersRoute
|
|
290
342
|
'/settings/suggested-vips': typeof SettingsSuggestedVipsRoute
|
|
343
|
+
'/calendar/': typeof CalendarIndexRoute
|
|
291
344
|
'/mail/': typeof MailIndexRoute
|
|
292
345
|
'/settings/': typeof SettingsIndexRoute
|
|
346
|
+
'/calendar/$view/$date': typeof CalendarViewDateRouteWithChildren
|
|
293
347
|
'/mail/$mailboxId/$threadId': typeof MailMailboxIdThreadIdRouteWithChildren
|
|
294
348
|
'/mail/brief/$threadId': typeof MailBriefThreadIdRouteWithChildren
|
|
295
349
|
'/mail/flagged/$threadId': typeof MailFlaggedThreadIdRouteWithChildren
|
|
@@ -297,6 +351,8 @@ export interface FileRoutesByFullPath {
|
|
|
297
351
|
'/mail/brief/': typeof MailBriefIndexRoute
|
|
298
352
|
'/mail/flagged/': typeof MailFlaggedIndexRoute
|
|
299
353
|
'/mail/outbox/': typeof MailOutboxIndexRoute
|
|
354
|
+
'/calendar/$view/$date/$calendarObjectId': typeof CalendarViewDateCalendarObjectIdRouteWithChildren
|
|
355
|
+
'/calendar/$view/$date/new': typeof CalendarViewDateNewRoute
|
|
300
356
|
'/mail/$mailboxId/$threadId/$messageId': typeof MailMailboxIdThreadIdMessageIdRouteWithChildren
|
|
301
357
|
'/mail/$mailboxId/compose/{-$outboxMessageId}': typeof MailMailboxIdComposeChar123OutboxMessageIdChar125Route
|
|
302
358
|
'/mail/brief/$threadId/$messageId': typeof MailBriefThreadIdMessageIdRouteWithChildren
|
|
@@ -305,9 +361,12 @@ export interface FileRoutesByFullPath {
|
|
|
305
361
|
'/mail/flagged/compose/{-$outboxMessageId}': typeof MailFlaggedComposeChar123OutboxMessageIdChar125Route
|
|
306
362
|
'/mail/outbox/compose/{-$outboxMessageId}': typeof MailOutboxComposeChar123OutboxMessageIdChar125Route
|
|
307
363
|
'/mail/outbox/draft/$outboxMessageId': typeof MailOutboxDraftOutboxMessageIdRoute
|
|
364
|
+
'/calendar/$view/$date/': typeof CalendarViewDateIndexRoute
|
|
308
365
|
'/mail/$mailboxId/$threadId/': typeof MailMailboxIdThreadIdIndexRoute
|
|
309
366
|
'/mail/brief/$threadId/': typeof MailBriefThreadIdIndexRoute
|
|
310
367
|
'/mail/flagged/$threadId/': typeof MailFlaggedThreadIdIndexRoute
|
|
368
|
+
'/calendar/$view/$date/$calendarObjectId/$recurrenceId': typeof CalendarViewDateCalendarObjectIdRecurrenceIdRoute
|
|
369
|
+
'/calendar/$view/$date/$calendarObjectId/': typeof CalendarViewDateCalendarObjectIdIndexRoute
|
|
311
370
|
'/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
312
371
|
'/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailBriefThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
313
372
|
'/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailFlaggedThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
@@ -324,12 +383,14 @@ export interface FileRoutesByTo {
|
|
|
324
383
|
'/settings/labels': typeof SettingsLabelsRoute
|
|
325
384
|
'/settings/senders': typeof SettingsSendersRoute
|
|
326
385
|
'/settings/suggested-vips': typeof SettingsSuggestedVipsRoute
|
|
386
|
+
'/calendar': typeof CalendarIndexRoute
|
|
327
387
|
'/mail': typeof MailIndexRoute
|
|
328
388
|
'/settings': typeof SettingsIndexRoute
|
|
329
389
|
'/mail/$mailboxId': typeof MailMailboxIdIndexRoute
|
|
330
390
|
'/mail/brief': typeof MailBriefIndexRoute
|
|
331
391
|
'/mail/flagged': typeof MailFlaggedIndexRoute
|
|
332
392
|
'/mail/outbox': typeof MailOutboxIndexRoute
|
|
393
|
+
'/calendar/$view/$date/new': typeof CalendarViewDateNewRoute
|
|
333
394
|
'/mail/$mailboxId/$threadId/$messageId': typeof MailMailboxIdThreadIdMessageIdRouteWithChildren
|
|
334
395
|
'/mail/$mailboxId/compose/{-$outboxMessageId}': typeof MailMailboxIdComposeChar123OutboxMessageIdChar125Route
|
|
335
396
|
'/mail/brief/$threadId/$messageId': typeof MailBriefThreadIdMessageIdRouteWithChildren
|
|
@@ -338,9 +399,12 @@ export interface FileRoutesByTo {
|
|
|
338
399
|
'/mail/flagged/compose/{-$outboxMessageId}': typeof MailFlaggedComposeChar123OutboxMessageIdChar125Route
|
|
339
400
|
'/mail/outbox/compose/{-$outboxMessageId}': typeof MailOutboxComposeChar123OutboxMessageIdChar125Route
|
|
340
401
|
'/mail/outbox/draft/$outboxMessageId': typeof MailOutboxDraftOutboxMessageIdRoute
|
|
402
|
+
'/calendar/$view/$date': typeof CalendarViewDateIndexRoute
|
|
341
403
|
'/mail/$mailboxId/$threadId': typeof MailMailboxIdThreadIdIndexRoute
|
|
342
404
|
'/mail/brief/$threadId': typeof MailBriefThreadIdIndexRoute
|
|
343
405
|
'/mail/flagged/$threadId': typeof MailFlaggedThreadIdIndexRoute
|
|
406
|
+
'/calendar/$view/$date/$calendarObjectId/$recurrenceId': typeof CalendarViewDateCalendarObjectIdRecurrenceIdRoute
|
|
407
|
+
'/calendar/$view/$date/$calendarObjectId': typeof CalendarViewDateCalendarObjectIdIndexRoute
|
|
344
408
|
'/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
345
409
|
'/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailBriefThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
346
410
|
'/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailFlaggedThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
@@ -348,6 +412,7 @@ export interface FileRoutesByTo {
|
|
|
348
412
|
export interface FileRoutesById {
|
|
349
413
|
__root__: typeof rootRouteImport
|
|
350
414
|
'/': typeof IndexRoute
|
|
415
|
+
'/calendar': typeof CalendarRouteWithChildren
|
|
351
416
|
'/import': typeof ImportRoute
|
|
352
417
|
'/mail': typeof MailRouteWithChildren
|
|
353
418
|
'/onboarding': typeof OnboardingRoute
|
|
@@ -364,8 +429,10 @@ export interface FileRoutesById {
|
|
|
364
429
|
'/settings/labels': typeof SettingsLabelsRoute
|
|
365
430
|
'/settings/senders': typeof SettingsSendersRoute
|
|
366
431
|
'/settings/suggested-vips': typeof SettingsSuggestedVipsRoute
|
|
432
|
+
'/calendar/': typeof CalendarIndexRoute
|
|
367
433
|
'/mail/': typeof MailIndexRoute
|
|
368
434
|
'/settings/': typeof SettingsIndexRoute
|
|
435
|
+
'/calendar/$view/$date': typeof CalendarViewDateRouteWithChildren
|
|
369
436
|
'/mail/$mailboxId/$threadId': typeof MailMailboxIdThreadIdRouteWithChildren
|
|
370
437
|
'/mail/brief/$threadId': typeof MailBriefThreadIdRouteWithChildren
|
|
371
438
|
'/mail/flagged/$threadId': typeof MailFlaggedThreadIdRouteWithChildren
|
|
@@ -373,6 +440,8 @@ export interface FileRoutesById {
|
|
|
373
440
|
'/mail/brief/': typeof MailBriefIndexRoute
|
|
374
441
|
'/mail/flagged/': typeof MailFlaggedIndexRoute
|
|
375
442
|
'/mail/outbox/': typeof MailOutboxIndexRoute
|
|
443
|
+
'/calendar/$view/$date/$calendarObjectId': typeof CalendarViewDateCalendarObjectIdRouteWithChildren
|
|
444
|
+
'/calendar/$view/$date/new': typeof CalendarViewDateNewRoute
|
|
376
445
|
'/mail/$mailboxId/$threadId/$messageId': typeof MailMailboxIdThreadIdMessageIdRouteWithChildren
|
|
377
446
|
'/mail/$mailboxId/compose/{-$outboxMessageId}': typeof MailMailboxIdComposeChar123OutboxMessageIdChar125Route
|
|
378
447
|
'/mail/brief/$threadId/$messageId': typeof MailBriefThreadIdMessageIdRouteWithChildren
|
|
@@ -381,9 +450,12 @@ export interface FileRoutesById {
|
|
|
381
450
|
'/mail/flagged/compose/{-$outboxMessageId}': typeof MailFlaggedComposeChar123OutboxMessageIdChar125Route
|
|
382
451
|
'/mail/outbox/compose/{-$outboxMessageId}': typeof MailOutboxComposeChar123OutboxMessageIdChar125Route
|
|
383
452
|
'/mail/outbox/draft/$outboxMessageId': typeof MailOutboxDraftOutboxMessageIdRoute
|
|
453
|
+
'/calendar/$view/$date/': typeof CalendarViewDateIndexRoute
|
|
384
454
|
'/mail/$mailboxId/$threadId/': typeof MailMailboxIdThreadIdIndexRoute
|
|
385
455
|
'/mail/brief/$threadId/': typeof MailBriefThreadIdIndexRoute
|
|
386
456
|
'/mail/flagged/$threadId/': typeof MailFlaggedThreadIdIndexRoute
|
|
457
|
+
'/calendar/$view/$date/$calendarObjectId/$recurrenceId': typeof CalendarViewDateCalendarObjectIdRecurrenceIdRoute
|
|
458
|
+
'/calendar/$view/$date/$calendarObjectId/': typeof CalendarViewDateCalendarObjectIdIndexRoute
|
|
387
459
|
'/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
388
460
|
'/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailBriefThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
389
461
|
'/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}': typeof MailFlaggedThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
@@ -392,6 +464,7 @@ export interface FileRouteTypes {
|
|
|
392
464
|
fileRoutesByFullPath: FileRoutesByFullPath
|
|
393
465
|
fullPaths:
|
|
394
466
|
| '/'
|
|
467
|
+
| '/calendar'
|
|
395
468
|
| '/import'
|
|
396
469
|
| '/mail'
|
|
397
470
|
| '/onboarding'
|
|
@@ -408,8 +481,10 @@ export interface FileRouteTypes {
|
|
|
408
481
|
| '/settings/labels'
|
|
409
482
|
| '/settings/senders'
|
|
410
483
|
| '/settings/suggested-vips'
|
|
484
|
+
| '/calendar/'
|
|
411
485
|
| '/mail/'
|
|
412
486
|
| '/settings/'
|
|
487
|
+
| '/calendar/$view/$date'
|
|
413
488
|
| '/mail/$mailboxId/$threadId'
|
|
414
489
|
| '/mail/brief/$threadId'
|
|
415
490
|
| '/mail/flagged/$threadId'
|
|
@@ -417,6 +492,8 @@ export interface FileRouteTypes {
|
|
|
417
492
|
| '/mail/brief/'
|
|
418
493
|
| '/mail/flagged/'
|
|
419
494
|
| '/mail/outbox/'
|
|
495
|
+
| '/calendar/$view/$date/$calendarObjectId'
|
|
496
|
+
| '/calendar/$view/$date/new'
|
|
420
497
|
| '/mail/$mailboxId/$threadId/$messageId'
|
|
421
498
|
| '/mail/$mailboxId/compose/{-$outboxMessageId}'
|
|
422
499
|
| '/mail/brief/$threadId/$messageId'
|
|
@@ -425,9 +502,12 @@ export interface FileRouteTypes {
|
|
|
425
502
|
| '/mail/flagged/compose/{-$outboxMessageId}'
|
|
426
503
|
| '/mail/outbox/compose/{-$outboxMessageId}'
|
|
427
504
|
| '/mail/outbox/draft/$outboxMessageId'
|
|
505
|
+
| '/calendar/$view/$date/'
|
|
428
506
|
| '/mail/$mailboxId/$threadId/'
|
|
429
507
|
| '/mail/brief/$threadId/'
|
|
430
508
|
| '/mail/flagged/$threadId/'
|
|
509
|
+
| '/calendar/$view/$date/$calendarObjectId/$recurrenceId'
|
|
510
|
+
| '/calendar/$view/$date/$calendarObjectId/'
|
|
431
511
|
| '/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
432
512
|
| '/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
433
513
|
| '/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
@@ -444,12 +524,14 @@ export interface FileRouteTypes {
|
|
|
444
524
|
| '/settings/labels'
|
|
445
525
|
| '/settings/senders'
|
|
446
526
|
| '/settings/suggested-vips'
|
|
527
|
+
| '/calendar'
|
|
447
528
|
| '/mail'
|
|
448
529
|
| '/settings'
|
|
449
530
|
| '/mail/$mailboxId'
|
|
450
531
|
| '/mail/brief'
|
|
451
532
|
| '/mail/flagged'
|
|
452
533
|
| '/mail/outbox'
|
|
534
|
+
| '/calendar/$view/$date/new'
|
|
453
535
|
| '/mail/$mailboxId/$threadId/$messageId'
|
|
454
536
|
| '/mail/$mailboxId/compose/{-$outboxMessageId}'
|
|
455
537
|
| '/mail/brief/$threadId/$messageId'
|
|
@@ -458,15 +540,19 @@ export interface FileRouteTypes {
|
|
|
458
540
|
| '/mail/flagged/compose/{-$outboxMessageId}'
|
|
459
541
|
| '/mail/outbox/compose/{-$outboxMessageId}'
|
|
460
542
|
| '/mail/outbox/draft/$outboxMessageId'
|
|
543
|
+
| '/calendar/$view/$date'
|
|
461
544
|
| '/mail/$mailboxId/$threadId'
|
|
462
545
|
| '/mail/brief/$threadId'
|
|
463
546
|
| '/mail/flagged/$threadId'
|
|
547
|
+
| '/calendar/$view/$date/$calendarObjectId/$recurrenceId'
|
|
548
|
+
| '/calendar/$view/$date/$calendarObjectId'
|
|
464
549
|
| '/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
465
550
|
| '/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
466
551
|
| '/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
467
552
|
id:
|
|
468
553
|
| '__root__'
|
|
469
554
|
| '/'
|
|
555
|
+
| '/calendar'
|
|
470
556
|
| '/import'
|
|
471
557
|
| '/mail'
|
|
472
558
|
| '/onboarding'
|
|
@@ -483,8 +569,10 @@ export interface FileRouteTypes {
|
|
|
483
569
|
| '/settings/labels'
|
|
484
570
|
| '/settings/senders'
|
|
485
571
|
| '/settings/suggested-vips'
|
|
572
|
+
| '/calendar/'
|
|
486
573
|
| '/mail/'
|
|
487
574
|
| '/settings/'
|
|
575
|
+
| '/calendar/$view/$date'
|
|
488
576
|
| '/mail/$mailboxId/$threadId'
|
|
489
577
|
| '/mail/brief/$threadId'
|
|
490
578
|
| '/mail/flagged/$threadId'
|
|
@@ -492,6 +580,8 @@ export interface FileRouteTypes {
|
|
|
492
580
|
| '/mail/brief/'
|
|
493
581
|
| '/mail/flagged/'
|
|
494
582
|
| '/mail/outbox/'
|
|
583
|
+
| '/calendar/$view/$date/$calendarObjectId'
|
|
584
|
+
| '/calendar/$view/$date/new'
|
|
495
585
|
| '/mail/$mailboxId/$threadId/$messageId'
|
|
496
586
|
| '/mail/$mailboxId/compose/{-$outboxMessageId}'
|
|
497
587
|
| '/mail/brief/$threadId/$messageId'
|
|
@@ -500,9 +590,12 @@ export interface FileRouteTypes {
|
|
|
500
590
|
| '/mail/flagged/compose/{-$outboxMessageId}'
|
|
501
591
|
| '/mail/outbox/compose/{-$outboxMessageId}'
|
|
502
592
|
| '/mail/outbox/draft/$outboxMessageId'
|
|
593
|
+
| '/calendar/$view/$date/'
|
|
503
594
|
| '/mail/$mailboxId/$threadId/'
|
|
504
595
|
| '/mail/brief/$threadId/'
|
|
505
596
|
| '/mail/flagged/$threadId/'
|
|
597
|
+
| '/calendar/$view/$date/$calendarObjectId/$recurrenceId'
|
|
598
|
+
| '/calendar/$view/$date/$calendarObjectId/'
|
|
506
599
|
| '/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
507
600
|
| '/mail/brief/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
508
601
|
| '/mail/flagged/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
@@ -510,6 +603,7 @@ export interface FileRouteTypes {
|
|
|
510
603
|
}
|
|
511
604
|
export interface RootRouteChildren {
|
|
512
605
|
IndexRoute: typeof IndexRoute
|
|
606
|
+
CalendarRoute: typeof CalendarRouteWithChildren
|
|
513
607
|
ImportRoute: typeof ImportRoute
|
|
514
608
|
MailRoute: typeof MailRouteWithChildren
|
|
515
609
|
OnboardingRoute: typeof OnboardingRoute
|
|
@@ -525,6 +619,13 @@ declare module '@tanstack/react-router' {
|
|
|
525
619
|
preLoaderRoute: typeof IndexRouteImport
|
|
526
620
|
parentRoute: typeof rootRouteImport
|
|
527
621
|
}
|
|
622
|
+
'/calendar': {
|
|
623
|
+
id: '/calendar'
|
|
624
|
+
path: '/calendar'
|
|
625
|
+
fullPath: '/calendar'
|
|
626
|
+
preLoaderRoute: typeof CalendarRouteImport
|
|
627
|
+
parentRoute: typeof rootRouteImport
|
|
628
|
+
}
|
|
528
629
|
'/import': {
|
|
529
630
|
id: '/import'
|
|
530
631
|
path: '/import'
|
|
@@ -553,6 +654,13 @@ declare module '@tanstack/react-router' {
|
|
|
553
654
|
preLoaderRoute: typeof SettingsRouteImport
|
|
554
655
|
parentRoute: typeof rootRouteImport
|
|
555
656
|
}
|
|
657
|
+
'/calendar/': {
|
|
658
|
+
id: '/calendar/'
|
|
659
|
+
path: '/'
|
|
660
|
+
fullPath: '/calendar/'
|
|
661
|
+
preLoaderRoute: typeof CalendarIndexRouteImport
|
|
662
|
+
parentRoute: typeof CalendarRoute
|
|
663
|
+
}
|
|
556
664
|
'/mail/': {
|
|
557
665
|
id: '/mail/'
|
|
558
666
|
path: '/'
|
|
@@ -651,6 +759,13 @@ declare module '@tanstack/react-router' {
|
|
|
651
759
|
preLoaderRoute: typeof SettingsSuggestedVipsRouteImport
|
|
652
760
|
parentRoute: typeof SettingsRoute
|
|
653
761
|
}
|
|
762
|
+
'/calendar/$view/$date': {
|
|
763
|
+
id: '/calendar/$view/$date'
|
|
764
|
+
path: '/$view/$date'
|
|
765
|
+
fullPath: '/calendar/$view/$date'
|
|
766
|
+
preLoaderRoute: typeof CalendarViewDateRouteImport
|
|
767
|
+
parentRoute: typeof CalendarRoute
|
|
768
|
+
}
|
|
654
769
|
'/mail/$mailboxId/': {
|
|
655
770
|
id: '/mail/$mailboxId/'
|
|
656
771
|
path: '/'
|
|
@@ -700,6 +815,27 @@ declare module '@tanstack/react-router' {
|
|
|
700
815
|
preLoaderRoute: typeof MailOutboxIndexRouteImport
|
|
701
816
|
parentRoute: typeof MailOutboxRoute
|
|
702
817
|
}
|
|
818
|
+
'/calendar/$view/$date/': {
|
|
819
|
+
id: '/calendar/$view/$date/'
|
|
820
|
+
path: '/'
|
|
821
|
+
fullPath: '/calendar/$view/$date/'
|
|
822
|
+
preLoaderRoute: typeof CalendarViewDateIndexRouteImport
|
|
823
|
+
parentRoute: typeof CalendarViewDateRoute
|
|
824
|
+
}
|
|
825
|
+
'/calendar/$view/$date/$calendarObjectId': {
|
|
826
|
+
id: '/calendar/$view/$date/$calendarObjectId'
|
|
827
|
+
path: '/$calendarObjectId'
|
|
828
|
+
fullPath: '/calendar/$view/$date/$calendarObjectId'
|
|
829
|
+
preLoaderRoute: typeof CalendarViewDateCalendarObjectIdRouteImport
|
|
830
|
+
parentRoute: typeof CalendarViewDateRoute
|
|
831
|
+
}
|
|
832
|
+
'/calendar/$view/$date/new': {
|
|
833
|
+
id: '/calendar/$view/$date/new'
|
|
834
|
+
path: '/new'
|
|
835
|
+
fullPath: '/calendar/$view/$date/new'
|
|
836
|
+
preLoaderRoute: typeof CalendarViewDateNewRouteImport
|
|
837
|
+
parentRoute: typeof CalendarViewDateRoute
|
|
838
|
+
}
|
|
703
839
|
'/mail/$mailboxId/$threadId/': {
|
|
704
840
|
id: '/mail/$mailboxId/$threadId/'
|
|
705
841
|
path: '/'
|
|
@@ -777,6 +913,20 @@ declare module '@tanstack/react-router' {
|
|
|
777
913
|
preLoaderRoute: typeof MailOutboxDraftOutboxMessageIdRouteImport
|
|
778
914
|
parentRoute: typeof MailOutboxRoute
|
|
779
915
|
}
|
|
916
|
+
'/calendar/$view/$date/$calendarObjectId/': {
|
|
917
|
+
id: '/calendar/$view/$date/$calendarObjectId/'
|
|
918
|
+
path: '/'
|
|
919
|
+
fullPath: '/calendar/$view/$date/$calendarObjectId/'
|
|
920
|
+
preLoaderRoute: typeof CalendarViewDateCalendarObjectIdIndexRouteImport
|
|
921
|
+
parentRoute: typeof CalendarViewDateCalendarObjectIdRoute
|
|
922
|
+
}
|
|
923
|
+
'/calendar/$view/$date/$calendarObjectId/$recurrenceId': {
|
|
924
|
+
id: '/calendar/$view/$date/$calendarObjectId/$recurrenceId'
|
|
925
|
+
path: '/$recurrenceId'
|
|
926
|
+
fullPath: '/calendar/$view/$date/$calendarObjectId/$recurrenceId'
|
|
927
|
+
preLoaderRoute: typeof CalendarViewDateCalendarObjectIdRecurrenceIdRouteImport
|
|
928
|
+
parentRoute: typeof CalendarViewDateCalendarObjectIdRoute
|
|
929
|
+
}
|
|
780
930
|
'/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}': {
|
|
781
931
|
id: '/mail/$mailboxId/$threadId/$messageId/$mode/{-$outboxMessageId}'
|
|
782
932
|
path: '/$mode/{-$outboxMessageId}'
|
|
@@ -801,6 +951,54 @@ declare module '@tanstack/react-router' {
|
|
|
801
951
|
}
|
|
802
952
|
}
|
|
803
953
|
|
|
954
|
+
interface CalendarViewDateCalendarObjectIdRouteChildren {
|
|
955
|
+
CalendarViewDateCalendarObjectIdRecurrenceIdRoute: typeof CalendarViewDateCalendarObjectIdRecurrenceIdRoute
|
|
956
|
+
CalendarViewDateCalendarObjectIdIndexRoute: typeof CalendarViewDateCalendarObjectIdIndexRoute
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
const CalendarViewDateCalendarObjectIdRouteChildren: CalendarViewDateCalendarObjectIdRouteChildren =
|
|
960
|
+
{
|
|
961
|
+
CalendarViewDateCalendarObjectIdRecurrenceIdRoute:
|
|
962
|
+
CalendarViewDateCalendarObjectIdRecurrenceIdRoute,
|
|
963
|
+
CalendarViewDateCalendarObjectIdIndexRoute:
|
|
964
|
+
CalendarViewDateCalendarObjectIdIndexRoute,
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
const CalendarViewDateCalendarObjectIdRouteWithChildren =
|
|
968
|
+
CalendarViewDateCalendarObjectIdRoute._addFileChildren(
|
|
969
|
+
CalendarViewDateCalendarObjectIdRouteChildren,
|
|
970
|
+
)
|
|
971
|
+
|
|
972
|
+
interface CalendarViewDateRouteChildren {
|
|
973
|
+
CalendarViewDateCalendarObjectIdRoute: typeof CalendarViewDateCalendarObjectIdRouteWithChildren
|
|
974
|
+
CalendarViewDateNewRoute: typeof CalendarViewDateNewRoute
|
|
975
|
+
CalendarViewDateIndexRoute: typeof CalendarViewDateIndexRoute
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
const CalendarViewDateRouteChildren: CalendarViewDateRouteChildren = {
|
|
979
|
+
CalendarViewDateCalendarObjectIdRoute:
|
|
980
|
+
CalendarViewDateCalendarObjectIdRouteWithChildren,
|
|
981
|
+
CalendarViewDateNewRoute: CalendarViewDateNewRoute,
|
|
982
|
+
CalendarViewDateIndexRoute: CalendarViewDateIndexRoute,
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
const CalendarViewDateRouteWithChildren =
|
|
986
|
+
CalendarViewDateRoute._addFileChildren(CalendarViewDateRouteChildren)
|
|
987
|
+
|
|
988
|
+
interface CalendarRouteChildren {
|
|
989
|
+
CalendarIndexRoute: typeof CalendarIndexRoute
|
|
990
|
+
CalendarViewDateRoute: typeof CalendarViewDateRouteWithChildren
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
const CalendarRouteChildren: CalendarRouteChildren = {
|
|
994
|
+
CalendarIndexRoute: CalendarIndexRoute,
|
|
995
|
+
CalendarViewDateRoute: CalendarViewDateRouteWithChildren,
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
const CalendarRouteWithChildren = CalendarRoute._addFileChildren(
|
|
999
|
+
CalendarRouteChildren,
|
|
1000
|
+
)
|
|
1001
|
+
|
|
804
1002
|
interface MailMailboxIdThreadIdMessageIdRouteChildren {
|
|
805
1003
|
MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route: typeof MailMailboxIdThreadIdMessageIdModeChar123OutboxMessageIdChar125Route
|
|
806
1004
|
}
|
|
@@ -1005,6 +1203,7 @@ const SettingsRouteWithChildren = SettingsRoute._addFileChildren(
|
|
|
1005
1203
|
|
|
1006
1204
|
const rootRouteChildren: RootRouteChildren = {
|
|
1007
1205
|
IndexRoute: IndexRoute,
|
|
1206
|
+
CalendarRoute: CalendarRouteWithChildren,
|
|
1008
1207
|
ImportRoute: ImportRoute,
|
|
1009
1208
|
MailRoute: MailRouteWithChildren,
|
|
1010
1209
|
OnboardingRoute: OnboardingRoute,
|
package/src/router.tsx
CHANGED
|
@@ -2,6 +2,7 @@ import type { QueryClient } from "@tanstack/react-query";
|
|
|
2
2
|
import { createRouter } from "@tanstack/react-router";
|
|
3
3
|
import { AppShellSkeleton } from "./components/layout/AppShellSkeleton";
|
|
4
4
|
import { recordRoute } from "./lib/route-breadcrumbs";
|
|
5
|
+
import { stringifySearch } from "./lib/search-params";
|
|
5
6
|
import type { Telemetry } from "./lib/telemetry";
|
|
6
7
|
import { routeTree } from "./routeTree.gen";
|
|
7
8
|
|
|
@@ -16,6 +17,10 @@ export const createAppRouter = (
|
|
|
16
17
|
const router = createRouter({
|
|
17
18
|
routeTree,
|
|
18
19
|
context: { queryClient },
|
|
20
|
+
// A query param that carries a list writes one param per value
|
|
21
|
+
// (`lib/search-params.ts`), which is what the router's own reader already
|
|
22
|
+
// expects and what a hand-written link says.
|
|
23
|
+
stringifySearch,
|
|
19
24
|
defaultPreload: "intent",
|
|
20
25
|
// A route arrives with its own code, and each mail list carries a whole pane
|
|
21
26
|
// in it. Without a pending state the router keeps the previous route on
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// biome-ignore lint/style/useFilenamingConvention: TanStack Router convention
|
|
2
|
+
/**
|
|
3
|
+
* One occurrence of a repeating event, under the series it belongs to.
|
|
4
|
+
*
|
|
5
|
+
* A segment rather than a param on the event, because an edit asks which
|
|
6
|
+
* instances it applies to and the answer starts from the one on screen: the
|
|
7
|
+
* series stays matched behind the occurrence, so the address names both.
|
|
8
|
+
*/
|
|
9
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
10
|
+
import { OpenCalendarEvent } from "@/components/calendar/OpenCalendarEvent";
|
|
11
|
+
|
|
12
|
+
function CalendarOccurrenceRoute() {
|
|
13
|
+
const { calendarObjectId, recurrenceId } = Route.useParams();
|
|
14
|
+
return (
|
|
15
|
+
<OpenCalendarEvent
|
|
16
|
+
calendarObjectId={calendarObjectId}
|
|
17
|
+
recurrenceId={recurrenceId}
|
|
18
|
+
/>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const Route = createFileRoute(
|
|
23
|
+
"/calendar/$view/$date/$calendarObjectId/$recurrenceId",
|
|
24
|
+
)({
|
|
25
|
+
component: CalendarOccurrenceRoute,
|
|
26
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// biome-ignore lint/style/useFilenamingConvention: TanStack Router convention
|
|
2
|
+
/**
|
|
3
|
+
* The event itself — the series, where it repeats. An occurrence of it is the
|
|
4
|
+
* `$recurrenceId` segment beside this one.
|
|
5
|
+
*/
|
|
6
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
7
|
+
import { OpenCalendarEvent } from "@/components/calendar/OpenCalendarEvent";
|
|
8
|
+
|
|
9
|
+
function CalendarEventRoute() {
|
|
10
|
+
const { calendarObjectId } = Route.useParams();
|
|
11
|
+
return <OpenCalendarEvent calendarObjectId={calendarObjectId} />;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const Route = createFileRoute(
|
|
15
|
+
"/calendar/$view/$date/$calendarObjectId/",
|
|
16
|
+
)({
|
|
17
|
+
component: CalendarEventRoute,
|
|
18
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// biome-ignore lint/style/useFilenamingConvention: TanStack Router convention
|
|
2
|
+
/**
|
|
3
|
+
* /calendar/{view}/{date}/{calendarObjectId} — an event open in the reading
|
|
4
|
+
* pane, mirroring `$threadId` under a mail list.
|
|
5
|
+
*
|
|
6
|
+
* A layout, because one instance of a series nests under it: the series is what
|
|
7
|
+
* the address names, and the occurrence is the segment below.
|
|
8
|
+
*/
|
|
9
|
+
import { createFileRoute, Outlet } from "@tanstack/react-router";
|
|
10
|
+
|
|
11
|
+
export const Route = createFileRoute("/calendar/$view/$date/$calendarObjectId")(
|
|
12
|
+
{
|
|
13
|
+
component: Outlet,
|
|
14
|
+
},
|
|
15
|
+
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// biome-ignore lint/style/useFilenamingConvention: TanStack Router convention
|
|
2
|
+
/**
|
|
3
|
+
* The calendar's reading pane with nothing open. It is a route because the pane
|
|
4
|
+
* belongs to the view it was opened from, and the event and the composer arrive
|
|
5
|
+
* as segments beside it.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
9
|
+
import { CalendarDays } from "lucide-react";
|
|
10
|
+
import { EmptyState } from "@/components/ui/EmptyState";
|
|
11
|
+
|
|
12
|
+
function CalendarReadingPane() {
|
|
13
|
+
return (
|
|
14
|
+
<div className="flex h-full items-center justify-center bg-surface">
|
|
15
|
+
<EmptyState
|
|
16
|
+
message="Pick an event to read it here."
|
|
17
|
+
icon={<CalendarDays className="size-8" />}
|
|
18
|
+
/>
|
|
19
|
+
</div>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const Route = createFileRoute("/calendar/$view/$date/")({
|
|
24
|
+
component: CalendarReadingPane,
|
|
25
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* /calendar/{view}/{date}/new — writing an event.
|
|
3
|
+
*
|
|
4
|
+
* A sibling of the event route, so navigating here unmatches whatever the
|
|
5
|
+
* calendar had open in the same transition: nothing has to be closed first, and
|
|
6
|
+
* a composer over an open event is unrepresentable. The address is exactly the
|
|
7
|
+
* move `compose` makes over a mail list.
|
|
8
|
+
*/
|
|
9
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
10
|
+
import { CalendarComposePane } from "@/components/calendar/CalendarComposePane";
|
|
11
|
+
import { useCalendarNavigation } from "@/routing";
|
|
12
|
+
|
|
13
|
+
function CalendarComposeRoute() {
|
|
14
|
+
const { closeEvent } = useCalendarNavigation();
|
|
15
|
+
return <CalendarComposePane onClose={closeEvent} />;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const Route = createFileRoute("/calendar/$view/$date/new")({
|
|
19
|
+
component: CalendarComposeRoute,
|
|
20
|
+
});
|