Files
webmail/lib/demo/fixtures/identities.ts
T
Linus Rath 4c0017d0c1 feat: rework the demo around one persona with two accounts and a shared mailbox
The demo user becomes Nora Lindqvist, engineering lead at Meridian Labs,
in the week of a product launch. The fixtures tell one story across mail,
contacts, calendar, tasks and files, and exercise the features the
screenshots and the public demo should show:

- a second, mail-only login (her personal domain) and the shared Support
  mailbox delegated to the work account, so the account switcher, the
  shared section and the merged inbox have real content
- raw headers the way Stalwart writes them: the sender check fails on
  the phishing mail, newsletters carry a one-click unsubscribe, one mail
  asks for a read receipt, and spam scores show in the details
- an iMIP invitation with a served .ics, an event waiting for the answer
  on the calendar, and RSVP patches applied in the demo client
- @mentions as mailto links in a received mail, a verification code
  twelve minutes old, nested folders, named tags on the mail, contact
  groups, a scheduled message and tasks switched on
- every attachment and file backed by real bytes under public/demo,
  generated by `scripts/demo-assets/generate.mjs`; contact photos are
  bundled portraits instead of requests to randomuser.me
- folder counts computed from the mail instead of hand-kept numbers

Demo login seeds the tags, templates and merged-inbox settings once per
device and switches the cross-account gate on for the session; "Reset"
restores them. `bulwark-demo-simulate=off` in localStorage stops the
simulated incoming mail for screenshot runs.
2026-10-18 19:48:11 +02:00

33 lines
1.1 KiB
TypeScript

import type { Identity } from '@/lib/jmap/types';
import { NORA, NORA_ALIAS, SUPPORT } from './people';
export function createDemoIdentities(): Identity[] {
return [
{
id: 'demo-identity-primary',
name: NORA.name,
email: NORA.email,
textSignature: 'Nora Lindqvist\nEngineering Lead, Meridian Labs\n+49 30 555 0199',
htmlSignature: '<p><b>Nora Lindqvist</b><br>Engineering Lead, Meridian Labs<br>+49 30 555 0199</p>',
mayDelete: false,
},
{
id: 'demo-identity-alias',
name: NORA_ALIAS.name,
email: NORA_ALIAS.email,
textSignature: 'Nora Lindqvist\nMeridian Labs',
htmlSignature: '<p>Nora Lindqvist<br>Meridian Labs</p>',
mayDelete: true,
},
{
id: 'demo-identity-support',
name: 'Meridian Support',
email: SUPPORT.email,
replyTo: [{ name: 'Meridian Support', email: SUPPORT.email }],
textSignature: 'Nora, for Meridian Support\nsupport@meridianlabs.example',
htmlSignature: '<p>Nora, for Meridian Support<br>support@meridianlabs.example</p>',
mayDelete: true,
},
];
}