Guida · Il plugin
I vocabolari che diventano select
Cinque liste passate al plugin. Ognuna trasforma un campo di testo libero in una scelta — e questo cambia chi può sbagliare.
Dove siamo
Il plugin è configurato al minimo. Alla fine di questo capitolo chi scrive contenuto sceglierà da un elenco invece di digitare un nome.
Il gesto
Passa viewModeNames con i nomi dello store. Riavvia.
Il campo viewMode nell’admin non è più testo libero: è una select.
Stessa cosa per animazioni, eventi, effetti e trigger.
import { PAGE_EFFECT_NAMES, eventVocabulary } from '@woodylab/uims/react'
import viewModes from './db.viewmodes.json'
import animations from './db.animations.json'
import declared from './db.events.json'
import { mergedHandlers, appEffects } from './src/app-events'
// PAGE_EFFECT_NAMES = ['refresh', 'reload', 'navigate'] — i tre che porta il pacchetto
uimsPlugin({
viewModeNames: viewModes.map((v) => v.name),
animationNames: animations.map((a) => a.name),
eventNames: eventVocabulary({ handlers: mergedHandlers, declared }),
effectNames: [...PAGE_EFFECT_NAMES, ...Object.keys(appEffects)],
})Cos’è appena successo
Il pacchetto non deduce nessuna di queste liste da solo, e non è una dimenticanza. Le liste vivono nel progetto — negli store, negli handler che hai scritto — e il pacchetto non le può conoscere senza andarsele a leggere, cioè senza fare assunzioni su dove stanno.
Passandogliele scegli tu cosa è dicibile. È il punto in cui decidi che un nome inventato non deve essere possibile da scrivere.
Quando non funziona
Attiva eventNames su un progetto i cui dati contengono già nomi fuori dalla lista. La select mostra quei valori VUOTI, e il primo salvataggio li perde in silenzio.
Per questo l’assenza è la posizione sicura di partenza: senza la lista i campi restano testo libero, e nessun dato viene perso. Prima di attivarla si guarda cosa c’è già scritto: i nomi event e run presenti nei documenti e fuori dall’unione andranno aggiunti al catalogo, o spariranno al primo salvataggio.
Avanti
Nel capitolo dopo: a cosa possono puntare i blocchi che puntano a qualcosa.