|
1 | 1 | /** |
2 | 2 | * Educational Content Sequence |
3 | 3 | * |
4 | | - * Content blocks shown in the sidebar while the wizard runs. Each |
5 | | - * block reveals line by line on a timer, transforming dead wait time |
6 | | - * into product education. After all blocks complete, the panel falls |
7 | | - * back to the rotating tip cards. |
| 4 | + * Content blocks shown in the sidebar while the wizard runs, |
| 5 | + * transforming dead wait time into product education. After all |
| 6 | + * blocks complete, the panel falls back to rotating tip cards. |
| 7 | + * |
| 8 | + * All blocks MUST have exactly `BLOCK_LINE_COUNT` content lines |
| 9 | + * (pad with empty strings) so the panel height stays fixed and |
| 10 | + * doesn't jump when blocks rotate. |
8 | 11 | */ |
9 | 12 |
|
10 | 13 | export type ContentBlock = { |
11 | 14 | title: string; |
12 | 15 | lines: string[]; |
13 | | - /** Dwell time (ms) after all lines are revealed before advancing. */ |
14 | | - pauseMs: number; |
15 | 16 | }; |
16 | 17 |
|
| 18 | +/** Fixed line count per block — keeps panel height stable. */ |
| 19 | +export const BLOCK_LINE_COUNT = 8; |
| 20 | + |
17 | 21 | export const LEARN_SEQUENCE: ContentBlock[] = [ |
18 | 22 | { |
19 | 23 | title: "How Sentry Works", |
20 | 24 | lines: [ |
21 | | - "Your App → SDK → Sentry", |
| 25 | + "App → SDK → Sentry → Alert", |
| 26 | + "", |
| 27 | + "The SDK captures errors and", |
| 28 | + "performance data, then sends", |
| 29 | + "them to Sentry for grouping,", |
| 30 | + "alerting, and root-cause", |
| 31 | + "analysis.", |
22 | 32 | "", |
23 | | - "The SDK captures errors, traces,", |
24 | | - "and performance data from your", |
25 | | - "running application and sends", |
26 | | - "them to Sentry for analysis.", |
27 | 33 | ], |
28 | | - pauseMs: 4000, |
29 | 34 | }, |
30 | 35 | { |
31 | 36 | title: "Error Tracking", |
32 | 37 | lines: [ |
33 | 38 | "Every crash is captured with:", |
34 | | - " • Stack trace", |
35 | | - " • Breadcrumbs (user actions)", |
36 | | - " • Device/browser context", |
| 39 | + "", |
| 40 | + " • Full stack trace", |
| 41 | + " • Breadcrumbs & context", |
37 | 42 | " • Release & commit info", |
38 | 43 | "", |
39 | 44 | "Errors are grouped into issues", |
40 | | - "so you fix root causes, not", |
41 | | - "individual reports.", |
| 45 | + "so you fix causes, not symptoms.", |
42 | 46 | ], |
43 | | - pauseMs: 4000, |
44 | 47 | }, |
45 | 48 | { |
46 | | - title: "Performance Monitoring", |
| 49 | + title: "Performance Tracing", |
47 | 50 | lines: [ |
48 | 51 | "Traces show the full journey:", |
49 | 52 | "", |
50 | | - " Request ─┬─ DB Query (120ms)", |
51 | | - " ├─ API Call (340ms)", |
52 | | - " └─ Render (80ms)", |
| 53 | + " Request ─┬─ DB (120ms)", |
| 54 | + " ├─ API (340ms)", |
| 55 | + " └─ Render (80ms)", |
53 | 56 | "", |
54 | 57 | "Find the slow piece without", |
55 | 58 | "adding manual timers.", |
56 | 59 | ], |
57 | | - pauseMs: 4000, |
58 | 60 | }, |
59 | 61 | { |
60 | 62 | title: "Session Replay", |
61 | 63 | lines: [ |
62 | | - "See exactly what the user saw:", |
63 | | - " DOM mutations, clicks,", |
64 | | - " network calls, and console", |
65 | | - " logs — all synced with your", |
66 | | - " error timeline.", |
| 64 | + "See what the user saw: DOM", |
| 65 | + "mutations, clicks, network", |
| 66 | + "calls, and console logs —", |
| 67 | + "all synced to the error.", |
67 | 68 | "", |
68 | 69 | "Debug by scrubbing a video,", |
69 | | - "not guessing from a stack trace.", |
| 70 | + "not reading a stack trace.", |
| 71 | + "", |
70 | 72 | ], |
71 | | - pauseMs: 4000, |
72 | 73 | }, |
73 | 74 | { |
74 | 75 | title: "Alerts & Integrations", |
75 | 76 | lines: [ |
76 | 77 | "Get notified when it matters:", |
77 | | - " • Spike in error frequency", |
78 | | - " • New issue after deploy", |
| 78 | + "", |
| 79 | + " • Error spike after deploy", |
79 | 80 | " • Slow transaction p95", |
| 81 | + " • New regression detected", |
80 | 82 | "", |
81 | 83 | "Routes to Slack, PagerDuty,", |
82 | | - "Jira, or email automatically.", |
| 84 | + "or email automatically.", |
83 | 85 | ], |
84 | | - pauseMs: 4000, |
85 | 86 | }, |
86 | 87 | { |
87 | 88 | title: "What's Next?", |
88 | 89 | lines: [ |
89 | | - "After this wizard finishes:", |
90 | | - "", |
91 | | - " sentry issue list", |
92 | | - " → see your first errors", |
93 | | - "", |
94 | | - " sentry issue explain <id>", |
95 | | - " → AI root-cause analysis", |
| 90 | + "After setup finishes, try:", |
96 | 91 | "", |
97 | | - " sentry trace list", |
98 | | - " → explore performance data", |
| 92 | + " sentry issue list", |
| 93 | + " → see your first errors", |
| 94 | + " sentry issue explain <id>", |
| 95 | + " → AI root-cause analysis", |
| 96 | + " sentry trace list", |
| 97 | + " → explore performance", |
99 | 98 | ], |
100 | | - pauseMs: 5000, |
101 | 99 | }, |
102 | 100 | ]; |
0 commit comments