🎉 T-wiki 1.3.0 is released

DagaMain

Il componente DagaMain è colui che si occupa di prendere il JSON di definizione assieme ad altre proprietà e disegnare l’anagrafica

export default function DagaMain({
	definition,
	adapters,
	selectOptions,
	customComponents,
	customComponentsProps,
	authorization,
	apiRef
}): Element

definition

è il JSON di definizione dell’anagrafica

adapters

type MainProps = {
	...
	adapters: Record<string, AdapterFunction>
	...
}
export type AdapterFunction = () => AdapterReturnType
export type AdapterReturnType = (data: AdapterArgs) => Promise<AdaptorFunctionReturnType>

Gli adapter non sono altro che connettori che fanno da interfacciamento tra l’anagrafica e il servizio/libreria HTTP che l’utilizzatore ha deciso di integrare
L’uso degli adapter permette all’anagrafica di essere agnostica in merito al reale metodo di recupero e gestione dei dati; lei sa che, in base all’adapter dichiarato all’interno di ogni API, deve passare un certo input, come i filtri, gli ordinamenti o la paginazione e che riceverà come risposta i dati sempre nello stesso formato.

ℹ️

Non ci sono limitazioni alla comunicazione con servizi esterni, l’importante è che venga utilizzato lo stesso standard per ogni input e output

selectOptions

type MainProps = {
	...
	selectOptions?: Record<string, SelectOptionsArray>
	...
}
export type SelectOptionsArray = readonly string[] | readonly { id: any, label: string }[]

selectOptions è un oggetto che viene utilizzato dall’anagrafica per trascodificare quei campi enumeratori con la descrizione del valore

⚠️️

L’utilizzo di questa proprietà dovrebbe essere limitato, e usato solamente quando non è possibile recuparare le informazioni direttamente dalla fonte

customComponents e customComponentsProps

type MainProps = {
	...
	customComponents?: Record<string, FC<any>>
	customComponentsProps?: Record<string, unknown>
	...
}

Queste due proprietà sono legate tra di loro, customComponents permette di passare all’anagrafica componenti statici, non generati dinamicamente, messi a disposizoine dell’utilizzatore, customComponentsProps invece non sono altro che le prop che verranno passare al relativo componente in fase di render

authorization

La proprietà authorization viene utilizzata per dichiarare, per ogni entità definita all’interno dell’anagrafica, quali ruoli sono richiesti all’utente per essere in grado di interagire con essa e la relativa funzione di controllo dell’autorizzazione.

ℹ️

Per maggiori informazioni sulla gestione delle autorizzazioni vedi la relativa guida

apiRef