Commit 41d3461
committed
feat(ads): split analytics dashboard by channel and reuse shared date filter
Replace the single Ads analytics menu item with one per ads-eligible channel
(Click-to-WhatsApp/Messenger/Instagram). Each lands on /dashboard/ads/<channel>,
validated against adsEligibleChannelTypes (404 on anything else) and superAdmin-
guarded; the channel-less route redirects to the requested channel when a stale
?channel= bookmark names a valid one, else the default. Per-channel integration
resolution is a compile-time-exhaustive Record<AdsEligibleChannelType, ...> map,
so adding a channel breaks the build rather than silently missing a case.
Swap the ads-only date-range controls for the shared DateRangePresetFilter
(refresh + preset dropdown + custom calendar), same position as Contacts/
Conversations, defaulting to Last 7 days. A URL bridge (useAdsRangeUrl) formats
the picked local calendar day into the ?from=&to= keys and restores the active
preset on load; the interim local-key-over-UTC-pipeline seam is documented, with
the full timezone migration tracked in docs/plans.
Fix an over-cap range (the Lifetime preset on an old workspace, or a manipulated
URL) silently collapsing to 7 days: parseAnalyticsDateRange now clamps to the
last 366 days, and workspaceCreatedAt floors Lifetime at workspace birth so its
range stays under the cap and the preset label resolves correctly.1 parent cb21920 commit 41d3461
43 files changed
Lines changed: 1300 additions & 864 deletions
File tree
- apps/builder
- __tests__
- messages
- src
- app/space/[workspaceId]/dashboard/ads
- [channel]
- features
- ads
- components
- hooks
- lib
- queries
- schemas
- analytics/components
- docs/plans
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 31 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
| 38 | + | |
38 | 39 | | |
39 | | - | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
57 | | - | |
| 58 | + | |
58 | 59 | | |
59 | 60 | | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
67 | 68 | | |
68 | 69 | | |
69 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
70 | 74 | | |
71 | 75 | | |
72 | | - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
73 | 79 | | |
74 | 80 | | |
75 | | - | |
| 81 | + | |
76 | 82 | | |
77 | 83 | | |
78 | | - | |
| 84 | + | |
79 | 85 | | |
80 | | - | |
81 | | - | |
| 86 | + | |
| 87 | + | |
82 | 88 | | |
83 | 89 | | |
84 | 90 | | |
| |||
88 | 94 | | |
89 | 95 | | |
90 | 96 | | |
91 | | - | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
92 | 102 | | |
93 | 103 | | |
94 | | - | |
| 104 | + | |
95 | 105 | | |
96 | 106 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
101 | 111 | | |
102 | 112 | | |
103 | 113 | | |
| |||
Lines changed: 0 additions & 43 deletions
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
7 | 27 | | |
8 | 28 | | |
9 | 29 | | |
| |||
25 | 45 | | |
26 | 46 | | |
27 | 47 | | |
28 | | - | |
29 | | - | |
30 | | - | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
31 | 52 | | |
32 | 53 | | |
33 | 54 | | |
34 | 55 | | |
35 | 56 | | |
36 | | - | |
37 | | - | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
38 | 63 | | |
39 | 64 | | |
40 | 65 | | |
| |||
0 commit comments