Settings
Settings sending domain
The sending-domain block in space notification settings, covering the sender-address field, a collapsible DNS authentication table, and dialogs for sending a test email or getting DNS help.
Available
Ports as-is
Examples
Rendered live from the maintained Storybook story. Lantern stores only the story id and embeds Storybook rather than duplicating the component or its demo.
Settings sending domain
Rendered live from Storybook
Storybook must be running for this to load — bun run start:storybook from the monorepo root, or set NEXT_PUBLIC_STORYBOOK_URL to a deployed instance.
Props
The component's public API, read from its TypeScript source. Descriptions come from TSDoc on the prop, so this table cannot drift from the component.
| Prop | Type | Default | Description |
|---|---|---|---|
status | SendingDomainStatus | "not_started" | Verification status. Drives the pill, the failure banner and the test-email CTA. |
senderEmail | string | "" | Sender address shown in the field. |
onSenderEmailChange | (value: string) => void | — | Undocumented — add TSDoc to the prop in the library. |
onVerify | () => void | — | Fired by "Verify DNS records". Verification itself belongs to the caller. |
dnsRecords | SendingDomainDnsRecord[] | SENDING_DOMAIN_DNS_RECORDS | Records shown in the expanded table. Defaults to `SENDING_DOMAIN_DNS_RECORDS`. |
defaultExpanded | boolean | false | Expands the authentication accordion on mount. |
expanded | boolean | — | Controlled expansion. Supply with `onExpandedChange`. |
onExpandedChange | (expanded: boolean) => void | — | Undocumented — add TSDoc to the prop in the library. |
initialCopiedIndex | number | null | null | Index of the DNS row currently showing the "copied" tick. Lifted rather than timed — the source reset it on a 1.5s `setTimeout`, which a story cannot pin. |
onCopyRecord | (record: SendingDomainDnsRecord, index: number) => void | — | Undocumented — add TSDoc to the prop in the library. |
initialShowRootDomainWarning | boolean | false | Shows the root-domain advisory under the sender field. |
hasAttemptedVerify | boolean | false | Renders the "changes take up to 48 hours" note under the verify button. |
pulseFailed | boolean | false | Adds the attention ring + pulse to the status pill (the post-failure flash). |
defaultTestModalOpen | boolean | false | Opens the "Send test email" dialog on mount. |
defaultHelpModalOpen | boolean | false | Opens the "Setting up DNS records" dialog on mount. |
initialTestEmail | string | "" | Seeds the test-email field. |
initialTestSending | boolean | false | Renders the test dialog's in-flight button label. |
initialTestSent | boolean | false | Renders the test dialog's success panel. |
initialTestSentTo | string | "" | Address echoed in the success panel. |
onSendTest | (email: string) => void | — | Undocumented — add TSDoc to the prop in the library. |
fallbackSender | string | "spaceid@mail.behindthescenes.com" | Fallback sender quoted in the info card. |
className | string | — | Undocumented — add TSDoc to the prop in the library. |
Reference
Transcribed from the component audit. If this disagrees with the source, the source is right.
- Source
src/components/settings/SettingsSendingDomain.tsx- Portability
- Copies across unchanged — only the utils import path moves.
- Notes
- Use when an operator needs to authenticate a custom sending domain; the status pill (not started, pending, verified, failed) gates which actions are available, an apex-domain address triggers a dismissible warning, and a failed verification shows a banner explaining what to do next.