window.JZ como mini-framework — tu propio panel de herramientas a partir de las acciones
Una sola acción es un botón y código. Pero las acciones pueden llamarse entre sí — y desde ese momento tienes en la mano un pequeño framework. window.JZ te deja construir workflows complejos y multipaso a partir de botones.
Qué es window.JZ
En el código de cualquier regla o acción está disponible el objeto window.JZ — una API para pilotar la barra de acciones JustZix:
JZ.click('LBL')— pulsa programáticamente la acción etiquetada «LBL».JZ.action('LBL')— obtén el elemento DOM del botón.JZ.actions()— un array de todas las acciones visibles.JZ.labels()— un array de las etiquetas.
La búsqueda ignora mayúsculas/minúsculas: JZ.click('save') equivale a JZ.click('SAVE').
Patrón 1 — una acción orquestadora
Tres acciones hacen cada una una cosa, una cuarta las compone en una secuencia:
// Acción "AUTO" — ejecuta tres otras en orden
JZ.click('LOAD');
setTimeout(() => JZ.click('PROC'), 500);
setTimeout(() => JZ.click('SAVE'), 1500);
Pruebas cada una de las tres acciones componentes por su cuenta; «AUTO» solo las dirige. Es el mismo principio que las funciones que llaman a funciones.
Patrón 2 — una acción condicional
// Acción "SMART" — el comportamiento depende del estado de la página
if (document.querySelector('.logged-in')) {
JZ.click('EXPORT');
} else {
JZ.click('LOGIN');
}
Patrón 3 — un bucle sobre las acciones
JZ.actions() y JZ.labels() te dejan tratar la barra como datos:
// Acción "ALL" — activa cada acción cuya etiqueta empieza por "T"
JZ.labels()
.filter(l => l.startsWith('T'))
.forEach(l => JZ.click(l));
Por qué funciona como un framework
Tienes unidades (las acciones), una forma de invocarlas (JZ.click), introspección (JZ.actions/labels) y composición (una acción que llama a acciones). Basta con esto para construir una herramienta multipaso a partir de una barra de botones — sin ninguna librería externa.
Trampas
- Timing.
JZ.clickes inmediato, pero el efecto de una acción (p. ej. un fetch) no. Por eso el orquestador usasetTimeout; mejor aún, haz que las acciones señalen la finalización mediante una variable compartida. - Las etiquetas son un contrato. Una acción orquestadora llama a otras por etiqueta — renombrar la etiqueta «LOAD» desconecta «AUTO». Trata las etiquetas como nombres de función.
Mira también
- window.JZ helpers — la API completa de las acciones
- La acción BUTTON — la unidad que orquestas
- Tres acciones que merecen un sitio — acciones listas para componer
Instala JustZix — y construye a partir de los botones algo más grande que un botón.
Valora este artículo
Sin valoraciones — sé el primero.