MessageView
Message, alerte ou confirmation, avec actions.
Description
Le composant MessageView affiche à l'utilisateur un message, une notification, une alerte ou une confirmation. Il prend en charge plusieurs niveaux de gravité (info, success, warning, error) et peut porter une action principale et une action secondaire. Un message peut être fermable, ou exiger une interaction de l'utilisateur.
Cas d'usage courants :
- Message de succès après l'envoi d'un formulaire
- Notification d'erreur
- Alerte d'information
- Boîte de dialogue de confirmation
- Message de bienvenue
Description des champs
idstringrequisIdentifiant unique de la vue message
typestringrequisToujours
"Message"contentMessageContentrequisObjet de contenu du message
content.titlestringrequisTitre du message
content.introstringoptionnelTexte d'introduction affiché avant le corps
content.bodystringrequis*Corps principal du message (requis si intro n'est pas fourni)
content.severitystringoptionnelGravité du message :
"info", "success", "warning", "error" (par défaut : "info")content.confirmSubmitActionrequisBouton d'action principal (requis)
content.confirm.textstringrequisTexte du bouton
content.confirm.methodHttpMethodoptionnelMéthode HTTP (par défaut : POST)
content.confirm.confirmMessagestringoptionnelMessage de confirmation facultatif
content.cancelSubmitActionoptionnelBouton d'action secondaire (facultatif)
content.cancel.textstringrequis*Texte du bouton (requis si cancel est défini)
content.cancel.methodHttpMethodoptionnelMéthode HTTP (par défaut : POST)
content.cancel.confirmMessagestringoptionnelMessage de confirmation facultatif
content.canDismissbooleanoptionnelIndique si le message peut être fermé sans action (par défaut : false)
content.metaRecord<string, unknown>optionnelMétadonnées facultatives
processIdstringoptionnelIdentifiant de processus pour les parcours en plusieurs étapes
metadataobjectoptionnelMétadonnées de la vue (version, createdAt, author, tags)
Méthodes
setIntro(intro)→ thisDéfinit le texte d'introduction affiché avant le corps
intro- Texte d'introduction
setBody(body)→ thisDéfinit le corps principal du message (requis si intro n'est pas fourni)
body- Texte du corps du message
setSeverity(severity)→ thisDéfinit le niveau de gravité du message
severity- Niveau de gravité ('info', 'success', 'warning', 'error')
setPrimaryAction(text, method?, confirmMessage?)→ thisConfigure le bouton d'action principal
text- Texte du boutonmethod- Méthode HTTP (par défaut : POST)confirmMessage- Confirmation facultative
submitButton(text, method?, confirmMessage?)→ thisAlias de setPrimaryAction()
text- Texte du boutonmethod- Méthode HTTP (par défaut : POST)confirmMessage- Confirmation facultative
setSecondaryAction(text, method?, confirmMessage?)→ thisConfigure le bouton d'action secondaire
text- Texte du boutonmethod- Méthode HTTP (par défaut : POST)confirmMessage- Confirmation facultative
clearSecondaryAction()→ thisSupprime l'action secondaire lorsqu'elle est présente
setDismissible(dismissible?)→ thisDéfinit si le message peut être fermé sans action
dismissible- Indicateur de fermeture (par défaut : true)
setMetadata(metadata)→ thisDéfinit des métadonnées personnalisées
metadata- Objet de métadonnées
serve()→ Record<string, unknown>Sert la vue après validation (hérité de BaseView)
toJSON()→ Record<string, unknown>Retourne la représentation JSON (hérité de BaseView)
setState(key, value)→ voidDéfinit l'état de la vue (hérité de BaseView)
key- Clé d'étatvalue- Valeur d'état
getState(key)→ unknownLit l'état de la vue (hérité de BaseView)
key- Clé d'état
setNext(url)→ thisDéfinit la navigation vers la vue suivante (hérité de BaseView)
url- URL de la vue suivante
setPrev(url)→ thisDéfinit la navigation vers la vue précédente (hérité de BaseView)
url- URL de la vue précédente
setProcess(processId, context?)→ thisDéfinit le contexte de processus (hérité de BaseView)
processId- Identifiant du processuscontext- Contexte du processus
Exemples de code JavaScript
Message d'information simple
1import { YeriaApp } from '@numerum-tech/yeriasdk';
2
3const yeriaApp = new YeriaApp({ appId: 'my-app' });
4
5const message = yeriaApp
6 .createMessageView('welcome', 'Welcome!')
7 .setIntro('Here are the important announcements for this week')
8 .setBody('Discover the main features of version 2.0 and update your profile to enjoy the new features.')
9 .setSeverity('info')
10 .setPrimaryAction('Got it', 'POST');
11
12const response = yeriaApp.serve(message);Message de succès
1const message = yeriaApp
2 .createMessageView('success', 'Success!')
3 .setBody('Your account has been created successfully.')
4 .setSeverity('success')
5 .setPrimaryAction('Continue', 'POST');Message d'erreur
1const message = yeriaApp
2 .createMessageView('error', 'Error')
3 .setBody('An error occurred while processing your request. Please try again.')
4 .setSeverity('error')
5 .setPrimaryAction('Retry', 'POST')
6 .setSecondaryAction('Cancel', 'POST');Message d'avertissement
1const message = yeriaApp
2 .createMessageView('warning', 'Warning')
3 .setBody('Your session will expire in 5 minutes. Please save your work.')
4 .setSeverity('warning')
5 .setPrimaryAction('Save Now', 'POST')
6 .setSecondaryAction('Continue', 'POST');Message fermable
1const message = yeriaApp
2 .createMessageView('notification', 'Notification')
3 .setBody('You have 3 new messages.')
4 .setSeverity('info')
5 .setPrimaryAction('View Messages', 'POST')
6 .setDismissible(true); // User can dismiss without actionBoîte de dialogue de confirmation
1const message = yeriaApp
2 .createMessageView('confirm-delete', 'Confirm Deletion')
3 .setBody('Are you sure you want to delete this item? This action cannot be undone.')
4 .setSeverity('warning')
5 .setPrimaryAction('Delete', 'DELETE', 'Are you absolutely sure?')
6 .setSecondaryAction('Cancel', 'POST');Message avec introduction et corps
1const message = yeriaApp
2 .createMessageView('announcement', 'New Features')
3 .setIntro('We\'re excited to announce new features!')
4 .setBody('Version 2.0 includes improved performance, new UI components, and enhanced security features.')
5 .setSeverity('info')
6 .setPrimaryAction('Learn More', 'GET')
7 .setSecondaryAction('Dismiss', 'POST');Message avec métadonnées
1const message = yeriaApp
2 .createMessageView('custom-message', 'Custom Message')
3 .setBody('This message includes custom metadata.')
4 .setSeverity('info')
5 .setPrimaryAction('OK', 'POST')
6 .setMetadata({
7 category: 'system',
8 priority: 'high',
9 timestamp: new Date().toISOString()
10 });Message avec différentes méthodes HTTP
1const message = yeriaApp
2 .createMessageView('update-available', 'Update Available')
3 .setBody('A new version is available. Would you like to update now?')
4 .setSeverity('info')
5 .setPrimaryAction('Update', 'PUT')
6 .setSecondaryAction('Later', 'POST');Message utilisant submitButton (alias)
1const message = yeriaApp
2 .createMessageView('info', 'Information')
3 .setBody('This uses the submitButton alias method.')
4 .setSeverity('info')
5 .submitButton('OK', 'POST'); // Alias for setPrimaryActionMessage supprimant l'action secondaire
1const message = yeriaApp
2 .createMessageView('message', 'Message')
3 .setBody('This message initially has two actions.')
4 .setSeverity('info')
5 .setPrimaryAction('Confirm', 'POST')
6 .setSecondaryAction('Cancel', 'POST')
7 .clearSecondaryAction(); // Remove secondary actionMessage dans un parcours en plusieurs étapes
1const message = yeriaApp
2 .createMessageView('step-complete', 'Step Complete')
3 .setProcess('onboarding', {
4 processName: 'User Onboarding',
5 currentStep: 2,
6 totalSteps: 3,
7 stepName: 'Verification'
8 })
9 .setBody('Your email has been verified successfully.')
10 .setSeverity('success')
11 .setPrimaryAction('Continue to Next Step', 'POST');Exemple JSON complet
1{
2 "id": "welcome-message",
3 "type": "Message",
4 "content": {
5 "title": "Welcome!",
6 "intro": "Thank you for joining us",
7 "body": "We're excited to have you on board. Get started by completing your profile.",
8 "severity": "info",
9 "confirm": {
10 "text": "Get Started",
11 "method": "POST",
12 "variant": "primary"
13 },
14 "cancel": {
15 "text": "Maybe Later",
16 "method": "POST",
17 "variant": "secondary"
18 },
19 "dismissible": true,
20 "meta": {
21 "campaign": "onboarding-2025"
22 }
23 },
24 "process": {
25 "processId": "onboarding",
26 "processName": "User Onboarding",
27 "currentStep": 1,
28 "totalSteps": 3,
29 "stepName": "Welcome"
30 },
31 "metadata": {
32 "version": "1.0.0",
33 "createdAt": "2025-01-28T10:00:00.000Z"
34 }
35}