message
message shows transient global feedback after user actions.
@duskmoon-dev/components/message Usage
When to use
- Use it immediately after user actions or system checks that need visible confirmation.
- Choose the least interruptive feedback surface that still makes the state clear.
Implementation notes
Features
Covers transient, inline, or blocking feedback patterns for user actions and system status.
Shows how the component keeps next actions visible after success, warning, or failure states.
message is most often configured through `top`, `duration`, `maxCount`, `prefixCls`.
Opens and renders typed messages
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 message from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function Example() {
return (<message>DuskMoon Message</message>);
} Opens and renders typed messages
test-backedmessage scenario from the component test coverage: opens and renders typed messages.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function messageOpensAndRendersTypedDemo() {
return (<message>DuskMoon Message</message>);
} Updates same keyed message and closes by key
test-backedmessage scenario from the component test coverage: updates same keyed message and closes by key.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function messageUpdatesSameKeyedMessageDemo() {
return (<message>DuskMoon Message</message>);
} Supports max count and placement config
test-backedmessage scenario from the component test coverage: supports max count and placement config.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function messageSupportsMaxCountAndDemo() {
return (<message>DuskMoon Message</message>);
} Supports close button and onClose
test-backedmessage scenario from the component test coverage: supports close button and onclose.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function messageSupportsCloseButtonAndDemo() {
return (<message>DuskMoon Message</message>);
} Supports useMessage holder tuple
test-backedmessage scenario from the component test coverage: supports usemessage holder tuple.
import "@duskmoon-dev/components/styles.css";
import { message } from "@duskmoon-dev/components/message";
export function messageSupportsUseMessageHolderTupleDemo() {
return (<message>DuskMoon Message</message>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<message>DuskMoon Message</message>
</div>
<div data-theme="moonlight">
<message>DuskMoon Message</message>
</div> API
The API reference below lists every parsed exported type or interface for message. Start with `top`, `duration`, `maxCount`, `prefixCls` for common usage.
packages/components/src/components/message/Message.types.ts
Scenarios: packages/components/src/components/message/Message.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
top | number | No | top configures message. |
duration | number | No | duration configures message. |
maxCount | number | No | maxCount configures message. |
prefixCls | string | No | prefixCls configures message. |
getContainer | () => HTMLElement | No | getContainer configures message. |
placement | MessagePlacement | No | placement configures message. |
| Prop | Type | Required | Description |
|---|---|---|---|
key | string | number | No | key configures message. |
type | MessageType | No | type configures message. |
content | ReactNode | No | content configures message. |
duration | number | No | duration configures message. |
className | string | No | className configures message. |
icon | ReactNode | No | icon configures message. |
onClose | () => void | No | onClose configures message. |
| Prop | Type | Required | Description |
|---|---|---|---|
key | string | Yes | key configures message. |
type | MessageType | Yes | type configures message. |
content | ReactNode | No | content configures message. |
duration | number | Yes | duration configures message. |
className | string | No | className configures message. |
icon | ReactNode | No | icon configures message. |
onClose | () => void | No | onClose configures message. |
| Prop | Type | Required | Description |
|---|---|---|---|
key | string | Yes | key configures message. |
close | () => void | Yes | close configures message. |
| Prop | Type | Required | Description |
|---|---|---|---|
open | (config: MessageArgsProps) => MessageHandle | Yes | open configures message. |
success | ( | Yes | success configures message. |
content | MessageContent, | Yes | content configures message. |
duration | number, | No | duration configures message. |
onClose | () => void, | No | onClose configures message. |
error | ( | Yes | error configures message. |
content | MessageContent, | Yes | content configures message. |
duration | number, | No | duration configures message. |
onClose | () => void, | No | onClose configures message. |
info | ( | Yes | info configures message. |
content | MessageContent, | Yes | content configures message. |
duration | number, | No | duration configures message. |
onClose | () => void, | No | onClose configures message. |
warning | ( | Yes | warning configures message. |
content | MessageContent, | Yes | content configures message. |
duration | number, | No | duration configures message. |
onClose | () => void, | No | onClose configures message. |
loading | ( | Yes | loading configures message. |
content | MessageContent, | Yes | content configures message. |
duration | number, | No | duration configures message. |
onClose | () => void, | No | onClose configures message. |
destroy | (key?: string | number) => void | Yes | destroy configures message. |
config | (config: MessageConfig) => void | Yes | config configures message. |
useMessage | () => [MessageApi, ReactNode] | Yes | useMessage configures message. |
"success" | "error" | "info" | "warning" | "loading" "top" | "bottom" ReactNode | MessageArgsProps