DmMessage
DmMessage documents the DmMessage export from duskmoon.
@duskmoon-dev/components/dm-message Usage
When to use
- Use it in DuskMoon application screens that need a packaged, opinionated workflow component.
- Reach for the lower-level standard component when the screen needs custom composition.
Implementation notes
Features
Wraps lower-level primitives into a higher-level DuskMoon-prefixed workflow API.
Examples show the defaults and composition points expected by internal DuskMoon app screens.
DmMessage is most often configured through `content`, `error`, `success`, `warning`.
Renders decoded multiline message content
Feature Demos
Feature demos are authored for the component page, then supplemented with behavior scenarios from the component test coverage.
Basic usage
Import the component stylesheet and DmMessage from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { DmMessage } from "@duskmoon-dev/components/dm-message";
export function Example() {
return (<DmMessage>DuskMoon Dm Message</DmMessage>);
} Renders decoded multiline message content
test-backedDmMessage scenario from the component test coverage: renders decoded multiline message content.
import "@duskmoon-dev/components/styles.css";
import { DmMessage } from "@duskmoon-dev/components/dm-message";
export function DmMessageRendersDecodedMultilineMessageDemo() {
return (<DmMessage>DuskMoon Dm Message</DmMessage>);
} Opens typed messages with Dm API and keyed replacement
test-backedDmMessage scenario from the component test coverage: opens typed messages with dm api and keyed replacement.
import "@duskmoon-dev/components/styles.css";
import { DmMessage } from "@duskmoon-dev/components/dm-message";
export function DmMessageOpensTypedMessagesWithDemo() {
return (<DmMessage>DuskMoon Dm Message</DmMessage>);
} Opens default info messages and destroys by key
test-backedDmMessage scenario from the component test coverage: opens default info messages and destroys by key.
import "@duskmoon-dev/components/styles.css";
import { DmMessage } from "@duskmoon-dev/components/dm-message";
export function DmMessageOpensDefaultInfoMessagesDemo() {
return (<DmMessage>DuskMoon Dm Message</DmMessage>);
} Limits visible messages to three
test-backedDmMessage scenario from the component test coverage: limits visible messages to three.
import "@duskmoon-dev/components/styles.css";
import { DmMessage } from "@duskmoon-dev/components/dm-message";
export function DmMessageLimitsVisibleMessagesToDemo() {
return (<DmMessage>DuskMoon Dm Message</DmMessage>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<DmMessage>DuskMoon Dm Message</DmMessage>
</div>
<div data-theme="moonlight">
<DmMessage>DuskMoon Dm Message</DmMessage>
</div> API
The API reference below lists every parsed exported type or interface for DmMessage. Start with `content`, `error`, `success`, `warning` for common usage.
packages/components/src/components/dm-message/DmMessage.types.ts
Scenarios: packages/components/src/components/dm-message/DmMessage.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
content | string | Yes | content configures DmMessage. |
className | string | No | className configures DmMessage. |
| Prop | Type | Required | Description |
|---|---|---|---|
error | (content: string, key?: string) => MessageHandle | Yes | error configures DmMessage. |
success | (content: string, key?: string) => MessageHandle | Yes | success configures DmMessage. |
warning | (content: string, key?: string) => MessageHandle | Yes | warning configures DmMessage. |
info | (content: string, key?: string) => MessageHandle | Yes | info configures DmMessage. |
loading | (content: string, key?: string) => MessageHandle | Yes | loading configures DmMessage. |
open | (content: string, key?: string, type?: DmMessageType) => MessageHandle | Yes | open configures DmMessage. |
destroy | (key?: string) => void | Yes | destroy configures DmMessage. |
| Prop | Type | Required | Description |
|---|---|---|---|
className | string | No | className configures DmMessage. |
| Prop | Type | Required | Description |
|---|---|---|---|
content | string | Yes | content configures DmMessage. |
type | DmMessageType | No | type configures DmMessage. |
MessageType ReactNode