Aller au contenu

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
]
});
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)
}/>
};