Ir al contenido

Message

Mensajes de retroalimentación ligeros mostrados en el centro superior de la pantalla.

import { message } from 'asterui'

Mensajes Básicos

Mensajes de retroalimentación ligeros para acciones del usuario.

import { message, Button, Space } from 'asterui'

function App() {
  return (
      <Space direction="horizontal" size="sm" wrap>
        <Button
          color="primary"
          onClick={() => message.success('Changes saved successfully')}
        >
          Success
        </Button>
  
        <Button
          onClick={() => message.error('Failed to save changes')}
        >
          Error
        </Button>
  
        <Button
          onClick={() => message.info('New updates available')}
        >
          Info
        </Button>
  
        <Button
          onClick={() => message.warning('Session expires in 5 minutes')}
        >
          Warning
        </Button>
      </Space>
    )
}

export default App

Mensaje de Carga

Muestra un mensaje de carga que puede ser descartado programáticamente.

import { message, Button } from 'asterui'
import { useState } from 'react'

function App() {
  const [loadingId, setLoadingId] = useState<string | null>(null);
  
  const handleClick = () => {
    const id = message.loading('Processing...');
    setLoadingId(id);
  
    setTimeout(() => {
      message.destroy(id);
      message.success('Done!');
      setLoadingId(null);
    }, 2000);
  };
  
  return (
      <Button onClick={handleClick} disabled={!!loadingId}>
        {loadingId ? 'Processing...' : 'Submit'}
      </Button>
    )
}

export default App

Duración Personalizada

Controla cuánto tiempo permanecen visibles los mensajes.

import { message, Button, Space } from 'asterui'

function App() {
  return (
      <Space direction="horizontal" size="sm" wrap>
        <Button
          onClick={() => message.info('Quick message', { duration: 1 })}
        >
          1 second
        </Button>
  
        <Button
          color="primary"
          onClick={() => message.info('Default duration')}
        >
          Default (3s)
        </Button>
  
        <Button
          onClick={() => message.info('Longer message', { duration: 6 })}
        >
          6 seconds
        </Button>
      </Space>
    )
}

export default App

Apilamiento de Mensajes

Múltiples mensajes se apilan en el centro superior de la pantalla.

import { message, Button } from 'asterui'

function App() {
  return (
      <Button
        color="primary"
        onClick={() => {
          message.success('First message');
          setTimeout(() => message.info('Second message'), 300);
          setTimeout(() => message.warning('Third message'), 600);
        }}
      >
        Show Multiple
      </Button>
    )
}

export default App
PropiedadDescripciónTipoPredeterminado
contentTexto del mensaje (primer argumento)React.ReactNode-
durationDuración de cierre automático en segundosnumber3
keyIdentificador único. Actualizar con la misma clave actualiza el mensaje existentestring-
iconIcono personalizado a mostrarReact.ReactNode-
classNameClase CSS adicionalstring-
styleEstilos en líneaReact.CSSProperties-
data-testidID de prueba para frameworks de testingstring-
onClickCallback cuando se hace clic en el mensaje() => void-
onCloseCallback cuando se cierra el mensaje() => void-
  • Los mensajes se anuncian a lectores de pantalla a través de regiones en vivo
  • Los iconos proporcionan señales visuales junto con el color para el tipo de mensaje
  • Los mensajes se descartan automáticamente pero pueden configurarse para persistir