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
}): Elementdefinition
è 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