@tracked/emails
Version:
Email templates for Tracked Training Platform
212 lines (154 loc) โข 4.94 kB
Markdown
Email templates and utilities for Tracked Training Platform.
- ๐ง Pre-built React Email templates for common use cases
- โ
Email and username validation utilities
- ๐จ Consistent branding and styling
- ๐ฆ TypeScript support with full type definitions
- ๐งช Comprehensive test coverage
```bash
npm install @tracked/emails
yarn add @tracked/emails
pnpm add @tracked/emails
```
Import and use any of the pre-built email templates:
```typescript
import { TrackedMagicLink, WelcomeEmail } from '@tracked/emails';
import { render } from '@react-email/components';
// Magic link email
const magicLinkHtml = render(
<TrackedMagicLink url="https://app.tracked.com/verify?token=..." />
);
// Welcome email
const welcomeHtml = render(
<WelcomeEmail username="john_doe" />
);
```
- `TrackedMagicLink` - Magic link authentication emails
- `TrackedMagicLinkActivate` - Account activation emails
- `WelcomeEmail` - Welcome new users
- `CoachInviteEmail` - Coach invitation emails
- `TeamInviteEmail` - Team invitation emails
- `FirstWorkoutAssignedEmail` - First workout assignment notification
- `FirstWorkoutCompletedEmail` - First workout completion celebration
- `NewFollowerEmail` - New follower notifications
- `DirectMessageEmail` - Direct message notifications
- `SupportEmail` - Support request confirmations
- `FeatureDiscoveryEmail` - Feature announcement emails
- `WeekOneCheckinEmail` - First week check-in
- `ClientAcceptedInvitationEmail` - Client acceptance notification
- `CoachRemovedClientEmail` - Client removal notification
- `TeamMemberRemovedEmail` - Team member removal notification
- `SubscriptionCanceledEmail` - Subscription cancellation confirmation
- `BodyweightGoalReachedEmail` - Goal achievement celebration
```typescript
import {
isValidEmailFormat,
isPrivateRelayEmail,
shouldSendEmailTo
} from '@tracked/emails';
// Check email format
isValidEmailFormat('user@example.com'); // true
isValidEmailFormat('invalid-email'); // false
// Detect Apple private relay emails
isPrivateRelayEmail('abc123@privaterelay.appleid.com'); // true
isPrivateRelayEmail('user@gmail.com'); // false
// Main validation function (recommended)
shouldSendEmailTo('user@example.com'); // true
shouldSendEmailTo('abc@privaterelay.appleid.com'); // false
shouldSendEmailTo(null); // false
```
```typescript
import {
isAnonymousUsername,
getSafeDisplayName
} from '@tracked/emails';
// Detect auto-generated UUIDs
isAnonymousUsername('01944f9e-8e64-7a78-9e1e-3daba7b13e9f'); // true
isAnonymousUsername('john_doe'); // false
// Get safe display name with intelligent fallback
getSafeDisplayName('john_doe', 'John', 'John Smith'); // 'john_doe'
getSafeDisplayName('01944f9e-...', 'John', 'John Smith'); // 'John'
getSafeDisplayName('01944f9e-...', null, 'John Smith'); // 'John Smith'
getSafeDisplayName('01944f9e-...', null, null); // 'there'
getSafeDisplayName('01944f9e-...', null, null, 'friend'); // 'friend'
```
```bash
yarn install
yarn test
yarn test:watch
yarn build
yarn typecheck
yarn lint
yarn format:fix
```
This package uses [React Email](https://react.email/) for email development.
```bash
yarn dev:email
```
Then open http://localhost:3000 to preview all email templates.
The package includes comprehensive tests for all validation utilities:
```bash
yarn test
yarn test:coverage
yarn test:watch
```
```bash
yarn build
```
This will:
1. Clean the `dist/` directory
2. Compile TypeScript to ESM format
3. Generate type definitions and source maps
```bash
npm version patch
npm publish --access public
```
```
@tracked/emails/
โโโ src/
โ โโโ emails/
โ โโโ utils/
โ โโโ index.ts
โโโ static/
โโโ dist/
โโโ package.json
```
This package is written in TypeScript and includes full type definitions. All exports are fully typed for the best developer experience.
MIT ยฉ Tracked Training Platform Inc.
This package is part of the Tracked Training Platform ecosystem. For issues or feature requests, please contact the development team.
- [React Email Documentation](https://react.email/)
- [Tracked Training Platform](https://tracked.gg/)