Colonnes/champs supplémentaires
Si vous souhaitez inclure une colonne qui ne correspond pas directement à une propriété,
vous pouvez utiliser le champ additionalFields en fournissant un
AdditionalFieldDelegate, qui inclut un id, un titre et un constructeur qui
reçoit l’entité correspondante.
Dans le constructeur, vous pouvez retourner n’importe quel composant React.
import { buildCollection, AdditionalFieldDelegate} from "@firecms/core";
type User = { name: string }
export const fullNameAdditionalField: AdditionalFieldDelegate<User> = { key: "full_name", name: "Full Name", Builder: ({ entity }) => { let values = entity.values; return typeof values.name === "string" ? values.name.toUpperCase() : "No name provided"; }, dependencies: ["name"]};
const usersCollection = buildCollection<User>({ path: "users", name: "User", properties: { name: { dataType: "string", name: "Name" } }, additionalFields: [ fullNameAdditionalField ]});Exemple avancé
Section intitulée « Exemple avancé »import { buildCollection, AdditionalFieldDelegate, AsyncPreviewComponent} from "@firecms/core";
export const productAdditionalField: AdditionalFieldDelegate<Product> = { key: "spanish_title", name: "Spanish title", Builder: ({ entity, context }) => <AsyncPreviewComponent builder={ context.dataSource.fetchEntity({ path: entity.path, entityId: entity.id, collection: localeSchema }).then((entity) => entity.values.name) }/>};