@tracked/emails 0.1.0
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/LICENSE +21 -0
- package/README.md +211 -0
- package/dist/emails/bodyweight-goal-reached.d.ts +14 -0
- package/dist/emails/bodyweight-goal-reached.d.ts.map +1 -0
- package/dist/emails/bodyweight-goal-reached.js +177 -0
- package/dist/emails/bodyweight-goal-reached.js.map +1 -0
- package/dist/emails/client-accepted-invitation.d.ts +10 -0
- package/dist/emails/client-accepted-invitation.d.ts.map +1 -0
- package/dist/emails/client-accepted-invitation.js +99 -0
- package/dist/emails/client-accepted-invitation.js.map +1 -0
- package/dist/emails/coach-invite.d.ts +10 -0
- package/dist/emails/coach-invite.d.ts.map +1 -0
- package/dist/emails/coach-invite.js +126 -0
- package/dist/emails/coach-invite.js.map +1 -0
- package/dist/emails/coach-removed-client.d.ts +8 -0
- package/dist/emails/coach-removed-client.d.ts.map +1 -0
- package/dist/emails/coach-removed-client.js +80 -0
- package/dist/emails/coach-removed-client.js.map +1 -0
- package/dist/emails/direct-message.d.ts +11 -0
- package/dist/emails/direct-message.d.ts.map +1 -0
- package/dist/emails/direct-message.js +103 -0
- package/dist/emails/direct-message.js.map +1 -0
- package/dist/emails/feature-discovery.d.ts +11 -0
- package/dist/emails/feature-discovery.d.ts.map +1 -0
- package/dist/emails/feature-discovery.js +121 -0
- package/dist/emails/feature-discovery.js.map +1 -0
- package/dist/emails/first-workout-assigned.d.ts +10 -0
- package/dist/emails/first-workout-assigned.d.ts.map +1 -0
- package/dist/emails/first-workout-assigned.js +98 -0
- package/dist/emails/first-workout-assigned.js.map +1 -0
- package/dist/emails/first-workout-completed.d.ts +11 -0
- package/dist/emails/first-workout-completed.d.ts.map +1 -0
- package/dist/emails/first-workout-completed.js +129 -0
- package/dist/emails/first-workout-completed.js.map +1 -0
- package/dist/emails/index.d.ts +7 -0
- package/dist/emails/index.d.ts.map +1 -0
- package/dist/emails/index.js +7 -0
- package/dist/emails/index.js.map +1 -0
- package/dist/emails/new-follower.d.ts +11 -0
- package/dist/emails/new-follower.d.ts.map +1 -0
- package/dist/emails/new-follower.js +98 -0
- package/dist/emails/new-follower.js.map +1 -0
- package/dist/emails/subscription-canceled.d.ts +10 -0
- package/dist/emails/subscription-canceled.d.ts.map +1 -0
- package/dist/emails/subscription-canceled.js +131 -0
- package/dist/emails/subscription-canceled.js.map +1 -0
- package/dist/emails/support-email.d.ts +8 -0
- package/dist/emails/support-email.d.ts.map +1 -0
- package/dist/emails/support-email.js +40 -0
- package/dist/emails/support-email.js.map +1 -0
- package/dist/emails/team-invite.d.ts +11 -0
- package/dist/emails/team-invite.d.ts.map +1 -0
- package/dist/emails/team-invite.js +100 -0
- package/dist/emails/team-invite.js.map +1 -0
- package/dist/emails/team-member-removed-email.d.ts +8 -0
- package/dist/emails/team-member-removed-email.d.ts.map +1 -0
- package/dist/emails/team-member-removed-email.js +97 -0
- package/dist/emails/team-member-removed-email.js.map +1 -0
- package/dist/emails/tracked-magic-link-activate.d.ts +7 -0
- package/dist/emails/tracked-magic-link-activate.d.ts.map +1 -0
- package/dist/emails/tracked-magic-link-activate.js +93 -0
- package/dist/emails/tracked-magic-link-activate.js.map +1 -0
- package/dist/emails/tracked-magic-link.d.ts +7 -0
- package/dist/emails/tracked-magic-link.d.ts.map +1 -0
- package/dist/emails/tracked-magic-link.js +101 -0
- package/dist/emails/tracked-magic-link.js.map +1 -0
- package/dist/emails/week-one-checkin.d.ts +10 -0
- package/dist/emails/week-one-checkin.d.ts.map +1 -0
- package/dist/emails/week-one-checkin.js +141 -0
- package/dist/emails/week-one-checkin.js.map +1 -0
- package/dist/emails/welcome.d.ts +8 -0
- package/dist/emails/welcome.d.ts.map +1 -0
- package/dist/emails/welcome.js +146 -0
- package/dist/emails/welcome.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/email-validation.d.ts +48 -0
- package/dist/utils/email-validation.d.ts.map +1 -0
- package/dist/utils/email-validation.js +72 -0
- package/dist/utils/email-validation.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/username-validation.d.ts +54 -0
- package/dist/utils/username-validation.d.ts.map +1 -0
- package/dist/utils/username-validation.js +76 -0
- package/dist/utils/username-validation.js.map +1 -0
- package/package.json +78 -0
- package/src/emails/bodyweight-goal-reached.tsx +396 -0
- package/src/emails/client-accepted-invitation.tsx +258 -0
- package/src/emails/coach-invite.tsx +270 -0
- package/src/emails/coach-removed-client.tsx +212 -0
- package/src/emails/direct-message.tsx +249 -0
- package/src/emails/feature-discovery.tsx +289 -0
- package/src/emails/first-workout-assigned.tsx +255 -0
- package/src/emails/first-workout-completed.tsx +312 -0
- package/src/emails/index.tsx +6 -0
- package/src/emails/new-follower.tsx +260 -0
- package/src/emails/subscription-canceled.tsx +311 -0
- package/src/emails/support-email.tsx +80 -0
- package/src/emails/team-invite.tsx +262 -0
- package/src/emails/team-member-removed-email.tsx +240 -0
- package/src/emails/tracked-magic-link-activate.tsx +252 -0
- package/src/emails/tracked-magic-link.tsx +264 -0
- package/src/emails/week-one-checkin.tsx +353 -0
- package/src/emails/welcome.tsx +341 -0
- package/src/index.ts +57 -0
- package/src/utils/email-validation.test.ts +78 -0
- package/src/utils/email-validation.ts +80 -0
- package/src/utils/index.ts +13 -0
- package/src/utils/username-validation.test.ts +118 -0
- package/src/utils/username-validation.ts +89 -0
- package/static/tracked-logo.png +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {
|
|
3
|
+
Body,
|
|
4
|
+
Button,
|
|
5
|
+
Column,
|
|
6
|
+
Container,
|
|
7
|
+
Head,
|
|
8
|
+
Hr,
|
|
9
|
+
Html,
|
|
10
|
+
Img,
|
|
11
|
+
Link,
|
|
12
|
+
Preview,
|
|
13
|
+
Row,
|
|
14
|
+
Section,
|
|
15
|
+
Text,
|
|
16
|
+
} from "@react-email/components";
|
|
17
|
+
|
|
18
|
+
interface Props {
|
|
19
|
+
loginButtonLink: string;
|
|
20
|
+
websiteUrl: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
|
|
24
|
+
|
|
25
|
+
export const TrackedMagicLink = ({ loginButtonLink, websiteUrl }: Props) => (
|
|
26
|
+
<Html>
|
|
27
|
+
<Head>
|
|
28
|
+
<meta name="color-scheme" content="light only" />
|
|
29
|
+
<meta name="supported-color-schemes" content="light only" />
|
|
30
|
+
</Head>
|
|
31
|
+
<Preview>
|
|
32
|
+
New login requested for Tracked - The gym tracking platform
|
|
33
|
+
</Preview>
|
|
34
|
+
<Body style={main}>
|
|
35
|
+
<Container style={container}>
|
|
36
|
+
<Section style={box}>
|
|
37
|
+
<Row style={{ marginBottom: "8px" }}>
|
|
38
|
+
<Column style={{ width: "auto", verticalAlign: "middle" }}>
|
|
39
|
+
<Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
|
|
40
|
+
</Column>
|
|
41
|
+
<Column
|
|
42
|
+
style={{
|
|
43
|
+
width: "auto",
|
|
44
|
+
verticalAlign: "middle",
|
|
45
|
+
paddingLeft: "4px",
|
|
46
|
+
}}
|
|
47
|
+
>
|
|
48
|
+
<Text
|
|
49
|
+
style={{
|
|
50
|
+
fontSize: "28px",
|
|
51
|
+
fontWeight: "900",
|
|
52
|
+
fontFamily:
|
|
53
|
+
"Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
54
|
+
color: "#020617",
|
|
55
|
+
margin: "0",
|
|
56
|
+
lineHeight: "32px",
|
|
57
|
+
letterSpacing: "0.5px",
|
|
58
|
+
}}
|
|
59
|
+
>
|
|
60
|
+
TRACKED
|
|
61
|
+
</Text>
|
|
62
|
+
</Column>
|
|
63
|
+
</Row>
|
|
64
|
+
<Hr style={hr} />
|
|
65
|
+
<Text style={paragraph}>Welcome to Tracked!</Text>
|
|
66
|
+
<Text style={paragraph}>
|
|
67
|
+
To get started, press the button below to log in to your Tracked
|
|
68
|
+
account. You will be redirected to the app.
|
|
69
|
+
</Text>
|
|
70
|
+
<div
|
|
71
|
+
style={{
|
|
72
|
+
marginTop: "24px",
|
|
73
|
+
marginBottom: "24px",
|
|
74
|
+
textAlign: "left" as const,
|
|
75
|
+
}}
|
|
76
|
+
>
|
|
77
|
+
<a
|
|
78
|
+
href={loginButtonLink}
|
|
79
|
+
style={{
|
|
80
|
+
backgroundColor: "#0f172a",
|
|
81
|
+
borderRadius: "8px",
|
|
82
|
+
fontSize: "16px",
|
|
83
|
+
fontWeight: "bold",
|
|
84
|
+
textDecoration: "none",
|
|
85
|
+
padding: "12px 32px",
|
|
86
|
+
display: "inline-block",
|
|
87
|
+
}}
|
|
88
|
+
>
|
|
89
|
+
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
90
|
+
Login to Tracked
|
|
91
|
+
</span>
|
|
92
|
+
</a>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<Text style={{ ...paragraph }}>
|
|
96
|
+
If this email was not expected, please ignore it. You can learn more
|
|
97
|
+
about the Tracked Training Platform by visiting our{" "}
|
|
98
|
+
<Link style={anchor} href={websiteUrl}>
|
|
99
|
+
website
|
|
100
|
+
</Link>
|
|
101
|
+
.
|
|
102
|
+
</Text>
|
|
103
|
+
|
|
104
|
+
<Row style={row}>
|
|
105
|
+
<Column style={column}>
|
|
106
|
+
<Button
|
|
107
|
+
style={appButton}
|
|
108
|
+
href="https://apps.apple.com/app/tracked-training/id6450913418"
|
|
109
|
+
>
|
|
110
|
+
<Img
|
|
111
|
+
src="https://cdn.trckd.ca/assets/app-store-black.png"
|
|
112
|
+
alt="Download on the App Store"
|
|
113
|
+
style={img}
|
|
114
|
+
/>
|
|
115
|
+
</Button>
|
|
116
|
+
</Column>
|
|
117
|
+
<Column style={column}>
|
|
118
|
+
<Button
|
|
119
|
+
style={appButton}
|
|
120
|
+
href="https://play.google.com/store/apps/details?id=com.tracked.mobile"
|
|
121
|
+
>
|
|
122
|
+
<Img
|
|
123
|
+
src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png"
|
|
124
|
+
alt="Google Play"
|
|
125
|
+
style={img}
|
|
126
|
+
/>
|
|
127
|
+
</Button>
|
|
128
|
+
</Column>
|
|
129
|
+
</Row>
|
|
130
|
+
|
|
131
|
+
<div
|
|
132
|
+
style={{
|
|
133
|
+
textAlign: "left" as const,
|
|
134
|
+
margin: "24px 0",
|
|
135
|
+
}}
|
|
136
|
+
>
|
|
137
|
+
<a
|
|
138
|
+
href="https://www.discord.gg/trackedgg"
|
|
139
|
+
style={{
|
|
140
|
+
backgroundColor: "#5865F2",
|
|
141
|
+
borderRadius: "8px",
|
|
142
|
+
fontSize: "16px",
|
|
143
|
+
fontWeight: "bold",
|
|
144
|
+
textDecoration: "none",
|
|
145
|
+
padding: "12px 32px",
|
|
146
|
+
display: "inline-block",
|
|
147
|
+
}}
|
|
148
|
+
>
|
|
149
|
+
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
150
|
+
Join our Discord Community
|
|
151
|
+
</span>
|
|
152
|
+
</a>
|
|
153
|
+
</div>
|
|
154
|
+
|
|
155
|
+
<Hr style={hr} />
|
|
156
|
+
<Text style={footer}>
|
|
157
|
+
Copyright © Tracked Training Platform Inc. <br /> 9101 Horne
|
|
158
|
+
Street, Vancouver, BC
|
|
159
|
+
</Text>
|
|
160
|
+
|
|
161
|
+
<Container>
|
|
162
|
+
<Link
|
|
163
|
+
href="https://tracked.gg/terms"
|
|
164
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
165
|
+
>
|
|
166
|
+
Terms
|
|
167
|
+
</Link>
|
|
168
|
+
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
169
|
+
<Link
|
|
170
|
+
href="https://tracked.gg/privacy"
|
|
171
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
172
|
+
>
|
|
173
|
+
Privacy
|
|
174
|
+
</Link>
|
|
175
|
+
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
176
|
+
<Link
|
|
177
|
+
href="https://tracked.gg/support"
|
|
178
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
179
|
+
>
|
|
180
|
+
Support
|
|
181
|
+
</Link>
|
|
182
|
+
</Container>
|
|
183
|
+
|
|
184
|
+
<Text style={footer}>
|
|
185
|
+
This is a service notification by the Tracked Training Platform.
|
|
186
|
+
</Text>
|
|
187
|
+
</Section>
|
|
188
|
+
</Container>
|
|
189
|
+
</Body>
|
|
190
|
+
</Html>
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
const main = {
|
|
194
|
+
backgroundColor: "#020617", // slate-950
|
|
195
|
+
fontFamily:
|
|
196
|
+
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const container = {
|
|
200
|
+
backgroundColor: "#020617", // slate-950
|
|
201
|
+
margin: "0 auto",
|
|
202
|
+
padding: "20px 0 48px",
|
|
203
|
+
marginBottom: "64px",
|
|
204
|
+
borderRadius: "8px",
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const box = {
|
|
208
|
+
padding: "0 24px",
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const row = {
|
|
212
|
+
display: "flex",
|
|
213
|
+
flexDirection: "row" as const,
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
const column = {
|
|
217
|
+
flex: "0 0 48%",
|
|
218
|
+
"@media (maxWidth: 600px)": {
|
|
219
|
+
flex: "0 0 100%",
|
|
220
|
+
marginBottom: "10px",
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const img = {
|
|
225
|
+
maxWidth: "100%",
|
|
226
|
+
height: "auto",
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
const appButton = {
|
|
230
|
+
backgroundColor: "transparent",
|
|
231
|
+
borderRadius: "8px",
|
|
232
|
+
color: "#ffffff", // white
|
|
233
|
+
fontSize: "16px",
|
|
234
|
+
fontWeight: "bold",
|
|
235
|
+
textDecoration: "none",
|
|
236
|
+
textAlign: "center" as const,
|
|
237
|
+
display: "block",
|
|
238
|
+
width: "100%",
|
|
239
|
+
maxWidth: "150px",
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
const hr = {
|
|
243
|
+
borderColor: "#4ade80", // green-400
|
|
244
|
+
margin: "24px 0",
|
|
245
|
+
borderWidth: "1px",
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
const paragraph = {
|
|
249
|
+
color: "#ffffff", // white
|
|
250
|
+
fontSize: "16px",
|
|
251
|
+
lineHeight: "24px",
|
|
252
|
+
textAlign: "left" as const,
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
const anchor = {
|
|
256
|
+
color: "#4ade80", // green-400
|
|
257
|
+
textDecoration: "underline",
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
const footer = {
|
|
261
|
+
color: "#94a3b8", // slate-400 for subtle footer text
|
|
262
|
+
fontSize: "12px",
|
|
263
|
+
lineHeight: "16px",
|
|
264
|
+
};
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {
|
|
3
|
+
Body,
|
|
4
|
+
Column,
|
|
5
|
+
Container,
|
|
6
|
+
Head,
|
|
7
|
+
Hr,
|
|
8
|
+
Html,
|
|
9
|
+
Img,
|
|
10
|
+
Link,
|
|
11
|
+
Preview,
|
|
12
|
+
Row,
|
|
13
|
+
Section,
|
|
14
|
+
Text,
|
|
15
|
+
} from "@react-email/components";
|
|
16
|
+
|
|
17
|
+
interface WeekOneCheckinEmailProps {
|
|
18
|
+
userName: string;
|
|
19
|
+
workoutsCompleted: number;
|
|
20
|
+
appUrl: string;
|
|
21
|
+
supportUrl?: string;
|
|
22
|
+
websiteUrl: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const baseUrl = "https://tracked.gg/android-chrome-192x192.png";
|
|
26
|
+
|
|
27
|
+
export const WeekOneCheckinEmail = ({
|
|
28
|
+
userName,
|
|
29
|
+
workoutsCompleted,
|
|
30
|
+
appUrl,
|
|
31
|
+
supportUrl,
|
|
32
|
+
websiteUrl = "https://tracked.gg",
|
|
33
|
+
}: WeekOneCheckinEmailProps) => {
|
|
34
|
+
const isActive = workoutsCompleted > 0;
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<Html>
|
|
38
|
+
<Head>
|
|
39
|
+
<meta name="color-scheme" content="light only" />
|
|
40
|
+
<meta name="supported-color-schemes" content="light only" />
|
|
41
|
+
</Head>
|
|
42
|
+
<Preview>How's your first week on Tracked going?</Preview>
|
|
43
|
+
<Body style={main}>
|
|
44
|
+
<Container style={container}>
|
|
45
|
+
<Section style={box}>
|
|
46
|
+
<Row style={{ marginBottom: "8px" }}>
|
|
47
|
+
<Column style={{ width: "auto", verticalAlign: "middle" }}>
|
|
48
|
+
<Img src={`${baseUrl}`} width="28" height="28" alt="Tracked" />
|
|
49
|
+
</Column>
|
|
50
|
+
<Column
|
|
51
|
+
style={{
|
|
52
|
+
width: "auto",
|
|
53
|
+
verticalAlign: "middle",
|
|
54
|
+
paddingLeft: "4px",
|
|
55
|
+
}}
|
|
56
|
+
>
|
|
57
|
+
<Text
|
|
58
|
+
style={{
|
|
59
|
+
fontSize: "28px",
|
|
60
|
+
fontWeight: "900",
|
|
61
|
+
fontFamily:
|
|
62
|
+
"Raleway, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
63
|
+
color: "#020617",
|
|
64
|
+
margin: "0",
|
|
65
|
+
lineHeight: "32px",
|
|
66
|
+
letterSpacing: "0.5px",
|
|
67
|
+
}}
|
|
68
|
+
>
|
|
69
|
+
TRACKED
|
|
70
|
+
</Text>
|
|
71
|
+
</Column>
|
|
72
|
+
</Row>
|
|
73
|
+
<Hr style={hr} />
|
|
74
|
+
|
|
75
|
+
<Text style={heading}>Week One Check-In</Text>
|
|
76
|
+
|
|
77
|
+
{isActive ? (
|
|
78
|
+
<>
|
|
79
|
+
<Text style={paragraph}>
|
|
80
|
+
Hi {userName}, you've been on Tracked for a week now and we
|
|
81
|
+
wanted to check in!
|
|
82
|
+
</Text>
|
|
83
|
+
|
|
84
|
+
<Section style={statsBox}>
|
|
85
|
+
<Text style={statsHeading}>Your First Week:</Text>
|
|
86
|
+
<Text style={statsText}>
|
|
87
|
+
<strong>Workouts Logged:</strong> {workoutsCompleted}
|
|
88
|
+
</Text>
|
|
89
|
+
<Text style={{ ...statsText, marginTop: "8px" }}>
|
|
90
|
+
{workoutsCompleted >= 3
|
|
91
|
+
? "🔥 Great start! You're building strong habits."
|
|
92
|
+
: "💪 Good progress! Try to aim for 3-4 workouts per week."}
|
|
93
|
+
</Text>
|
|
94
|
+
</Section>
|
|
95
|
+
|
|
96
|
+
<Text style={paragraph}>
|
|
97
|
+
Consistency is the key to reaching your fitness goals. Keep up
|
|
98
|
+
the momentum and remember - every workout counts!
|
|
99
|
+
</Text>
|
|
100
|
+
</>
|
|
101
|
+
) : (
|
|
102
|
+
<>
|
|
103
|
+
<Text style={paragraph}>
|
|
104
|
+
Hi {userName}, you joined Tracked a week ago, and we noticed you
|
|
105
|
+
haven't logged your first workout yet.
|
|
106
|
+
</Text>
|
|
107
|
+
|
|
108
|
+
<Section style={encouragementBox}>
|
|
109
|
+
<Text style={encouragementHeading}>Getting Started is Easy:</Text>
|
|
110
|
+
<ul style={featureList}>
|
|
111
|
+
<li style={featureItem}>
|
|
112
|
+
Open the app and tap the "+" button
|
|
113
|
+
</li>
|
|
114
|
+
<li style={featureItem}>
|
|
115
|
+
Select your exercises or create a custom workout
|
|
116
|
+
</li>
|
|
117
|
+
<li style={featureItem}>
|
|
118
|
+
Track your sets, reps, and weight as you go
|
|
119
|
+
</li>
|
|
120
|
+
<li style={featureItem}>
|
|
121
|
+
Complete your workout and see your progress!
|
|
122
|
+
</li>
|
|
123
|
+
</ul>
|
|
124
|
+
</Section>
|
|
125
|
+
|
|
126
|
+
<Text style={paragraph}>
|
|
127
|
+
The hardest part is getting started. Once you log that first
|
|
128
|
+
workout, you'll be on your way to building lasting fitness habits.
|
|
129
|
+
</Text>
|
|
130
|
+
</>
|
|
131
|
+
)}
|
|
132
|
+
|
|
133
|
+
<div
|
|
134
|
+
style={{
|
|
135
|
+
marginTop: "24px",
|
|
136
|
+
marginBottom: "24px",
|
|
137
|
+
textAlign: "left" as const,
|
|
138
|
+
}}
|
|
139
|
+
>
|
|
140
|
+
<a
|
|
141
|
+
href={appUrl}
|
|
142
|
+
style={{
|
|
143
|
+
backgroundColor: "#0f172a",
|
|
144
|
+
borderRadius: "8px",
|
|
145
|
+
fontSize: "16px",
|
|
146
|
+
fontWeight: "bold",
|
|
147
|
+
textDecoration: "none",
|
|
148
|
+
padding: "12px 32px",
|
|
149
|
+
display: "inline-block",
|
|
150
|
+
}}
|
|
151
|
+
>
|
|
152
|
+
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
153
|
+
{isActive ? "Continue Your Journey" : "Log Your First Workout"}
|
|
154
|
+
</span>
|
|
155
|
+
</a>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<Section style={tipBox}>
|
|
159
|
+
<Text style={tipHeading}>Need Help?</Text>
|
|
160
|
+
<Text style={tipText}>
|
|
161
|
+
Our support team is here to help you get the most out of Tracked.
|
|
162
|
+
{supportUrl && (
|
|
163
|
+
<>
|
|
164
|
+
{" "}
|
|
165
|
+
<Link
|
|
166
|
+
href={supportUrl}
|
|
167
|
+
style={{ color: "#4ade80", textDecoration: "underline" }}
|
|
168
|
+
>
|
|
169
|
+
Contact us
|
|
170
|
+
</Link>{" "}
|
|
171
|
+
anytime with questions.
|
|
172
|
+
</>
|
|
173
|
+
)}
|
|
174
|
+
</Text>
|
|
175
|
+
</Section>
|
|
176
|
+
|
|
177
|
+
<div
|
|
178
|
+
style={{
|
|
179
|
+
textAlign: "left" as const,
|
|
180
|
+
margin: "24px 0",
|
|
181
|
+
}}
|
|
182
|
+
>
|
|
183
|
+
<a
|
|
184
|
+
href="https://www.discord.gg/trackedgg"
|
|
185
|
+
style={{
|
|
186
|
+
backgroundColor: "#5865F2",
|
|
187
|
+
borderRadius: "8px",
|
|
188
|
+
fontSize: "16px",
|
|
189
|
+
fontWeight: "bold",
|
|
190
|
+
textDecoration: "none",
|
|
191
|
+
padding: "12px 32px",
|
|
192
|
+
display: "inline-block",
|
|
193
|
+
}}
|
|
194
|
+
>
|
|
195
|
+
<span style={{ color: "#ffffff", textDecoration: "none" }}>
|
|
196
|
+
Join our Discord Community
|
|
197
|
+
</span>
|
|
198
|
+
</a>
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
<Hr style={hr} />
|
|
202
|
+
<Text style={footer}>
|
|
203
|
+
Copyright © Tracked Training Platform Inc. <br /> 9101 Horne
|
|
204
|
+
Street, Vancouver, BC
|
|
205
|
+
</Text>
|
|
206
|
+
|
|
207
|
+
<Container>
|
|
208
|
+
<Link
|
|
209
|
+
href={`${websiteUrl}/terms`}
|
|
210
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
211
|
+
>
|
|
212
|
+
Terms
|
|
213
|
+
</Link>
|
|
214
|
+
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
215
|
+
<Link
|
|
216
|
+
href={`${websiteUrl}/privacy`}
|
|
217
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
218
|
+
>
|
|
219
|
+
Privacy
|
|
220
|
+
</Link>
|
|
221
|
+
<Link style={{ ...footer, paddingRight: 10 }}> | </Link>
|
|
222
|
+
<Link
|
|
223
|
+
href={`${websiteUrl}/support`}
|
|
224
|
+
style={{ ...footer, paddingRight: 10 }}
|
|
225
|
+
>
|
|
226
|
+
Support
|
|
227
|
+
</Link>
|
|
228
|
+
</Container>
|
|
229
|
+
|
|
230
|
+
<Text style={footer}>
|
|
231
|
+
This is a service notification by the Tracked Training Platform.
|
|
232
|
+
</Text>
|
|
233
|
+
</Section>
|
|
234
|
+
</Container>
|
|
235
|
+
</Body>
|
|
236
|
+
</Html>
|
|
237
|
+
);
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
const main = {
|
|
241
|
+
backgroundColor: "#020617", // slate-950
|
|
242
|
+
fontFamily:
|
|
243
|
+
'-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Ubuntu,sans-serif',
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
const container = {
|
|
247
|
+
backgroundColor: "#020617", // slate-950
|
|
248
|
+
margin: "0 auto",
|
|
249
|
+
padding: "20px 0 48px",
|
|
250
|
+
marginBottom: "64px",
|
|
251
|
+
borderRadius: "8px",
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
const box = {
|
|
255
|
+
padding: "0 24px",
|
|
256
|
+
};
|
|
257
|
+
|
|
258
|
+
const hr = {
|
|
259
|
+
borderColor: "#4ade80", // green-400
|
|
260
|
+
margin: "24px 0",
|
|
261
|
+
borderWidth: "1px",
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
const paragraph = {
|
|
265
|
+
color: "#ffffff", // white
|
|
266
|
+
fontSize: "16px",
|
|
267
|
+
lineHeight: "24px",
|
|
268
|
+
textAlign: "left" as const,
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
const heading = {
|
|
272
|
+
color: "#ffffff", // white
|
|
273
|
+
fontSize: "24px",
|
|
274
|
+
lineHeight: "32px",
|
|
275
|
+
fontWeight: "bold",
|
|
276
|
+
marginBottom: "16px",
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
const statsBox = {
|
|
280
|
+
backgroundColor: "#1e293b",
|
|
281
|
+
padding: "16px 24px",
|
|
282
|
+
borderRadius: "8px",
|
|
283
|
+
margin: "24px 0",
|
|
284
|
+
borderLeft: "4px solid #4ade80",
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
const statsHeading = {
|
|
288
|
+
color: "#4ade80",
|
|
289
|
+
fontSize: "16px",
|
|
290
|
+
fontWeight: "bold",
|
|
291
|
+
marginBottom: "12px",
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
const statsText = {
|
|
295
|
+
color: "#e2e8f0",
|
|
296
|
+
fontSize: "14px",
|
|
297
|
+
lineHeight: "24px",
|
|
298
|
+
marginBottom: "4px",
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
const encouragementBox = {
|
|
302
|
+
backgroundColor: "#1e293b",
|
|
303
|
+
padding: "16px 24px",
|
|
304
|
+
borderRadius: "8px",
|
|
305
|
+
margin: "24px 0",
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
const encouragementHeading = {
|
|
309
|
+
color: "#ffffff",
|
|
310
|
+
fontSize: "16px",
|
|
311
|
+
fontWeight: "bold",
|
|
312
|
+
marginBottom: "12px",
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
const featureList = {
|
|
316
|
+
margin: "0",
|
|
317
|
+
paddingLeft: "20px",
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
const featureItem = {
|
|
321
|
+
color: "#e2e8f0",
|
|
322
|
+
fontSize: "14px",
|
|
323
|
+
lineHeight: "24px",
|
|
324
|
+
marginBottom: "8px",
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
const tipBox = {
|
|
328
|
+
backgroundColor: "#1e293b",
|
|
329
|
+
padding: "16px 24px",
|
|
330
|
+
borderRadius: "8px",
|
|
331
|
+
margin: "24px 0",
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
const tipHeading = {
|
|
335
|
+
color: "#4ade80",
|
|
336
|
+
fontSize: "14px",
|
|
337
|
+
fontWeight: "bold",
|
|
338
|
+
marginBottom: "8px",
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
const tipText = {
|
|
342
|
+
color: "#e2e8f0",
|
|
343
|
+
fontSize: "14px",
|
|
344
|
+
lineHeight: "20px",
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
const footer = {
|
|
348
|
+
color: "#94a3b8", // slate-400 for subtle footer text
|
|
349
|
+
fontSize: "12px",
|
|
350
|
+
lineHeight: "16px",
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
export default WeekOneCheckinEmail;
|