window.JZ comme mini-framework — votre propre panneau d'outils à partir d'actions
Une action seule, c'est un bouton et du code. Mais les actions peuvent s'appeler entre elles — et dès cet instant vous tenez un petit framework. window.JZ vous laisse construire des workflows complexes et multi-étapes à partir de boutons.
Ce qu'est window.JZ
Dans le code de n'importe quelle règle ou action, l'objet window.JZ est disponible — une API pour piloter la barre d'actions JustZix :
JZ.click('LBL')— cliquer programmatiquement l'action étiquetée « LBL ».JZ.action('LBL')— obtenir l'élément DOM du bouton.JZ.actions()— un tableau de toutes les actions visibles.JZ.labels()— un tableau des étiquettes.
La recherche ignore la casse : JZ.click('save') équivaut à JZ.click('SAVE').
Pattern 1 — une action orchestrateur
Trois actions font chacune une chose, une quatrième les compose en une séquence :
// Action "AUTO" — exécute trois autres dans l'ordre
JZ.click('LOAD');
setTimeout(() => JZ.click('PROC'), 500);
setTimeout(() => JZ.click('SAVE'), 1500);
Vous testez chacune des trois actions composantes séparément ; « AUTO » ne fait que les diriger. C'est le même principe que des fonctions appelant des fonctions.
Pattern 2 — une action conditionnelle
// Action "SMART" — le comportement dépend de l'état de la page
if (document.querySelector('.logged-in')) {
JZ.click('EXPORT');
} else {
JZ.click('LOGIN');
}
Pattern 3 — une boucle sur les actions
JZ.actions() et JZ.labels() vous laissent traiter la barre comme des données :
// Action "ALL" — déclenche chaque action dont l'étiquette commence par "T"
JZ.labels()
.filter(l => l.startsWith('T'))
.forEach(l => JZ.click(l));
Pourquoi cela fonctionne comme un framework
Vous avez des unités (les actions), un moyen de les invoquer (JZ.click), de l'introspection (JZ.actions/labels) et de la composition (une action qui appelle des actions). C'est assez pour construire un outil multi-étapes à partir d'une barre de boutons — sans aucune bibliothèque externe.
Pièges
- Le timing.
JZ.clickest immédiat, mais l'effet d'une action (p. ex. un fetch) ne l'est pas. C'est pourquoi l'orchestrateur utilisesetTimeout; mieux encore, faites que les actions signalent leur achèvement via une variable partagée. - Les étiquettes sont un contrat. Une action orchestrateur en appelle d'autres par étiquette — renommer l'étiquette « LOAD » déconnecte « AUTO ». Traitez les étiquettes comme des noms de fonctions.
À voir aussi
- window.JZ helpers — l'API complète des actions
- L'action BOUTON — l'unité que vous orchestrez
- Trois actions qui méritent une place — des actions prêtes à composer
Installez JustZix — et construisez à partir de boutons quelque chose de plus grand qu'un bouton.
Notez cet article
Aucune note — soyez le premier.