Saltearse al contenido

Columnas/campos adicionales (Additional columns/fields)

Si deseas incluir una columna que no se asigne directamente a una propiedad, puedes usar el campo additionalFields, proporcionando un AdditionalFieldDelegate, que incluye un ID, un título y un generador (builder) que recibe la entidad correspondiente.

En el generador puedes devolver cualquier componente React.

import {
buildCollection,
buildCollection,
AdditionalFieldDelegate
} from "@firecms/core";
type User = { name: string }
export const fullNameAdditionalField: AdditionalFieldDelegate<User> = {
key: "full_name",
name: "Nombre completo",
Builder: ({ entity }) => {
let values = entity.values;
return typeof values.name === "string" ? values.name.toUpperCase() : "Nombre no proporcionado";
},
dependencies: ["name"]
};
const usersCollection = buildCollection<User>({
path: "users",
name: "Usuario",
properties: {
name: { dataType: "string", name: "Nombre" }
},
additionalFields: [
fullNameAdditionalField
]
});
import {
buildCollection,
AdditionalFieldDelegate,
AsyncPreviewComponent
} from "@firecms/core";
export const productAdditionalField: AdditionalFieldDelegate<Product> = {
key: "spanish_title",
name: "Título en español",
Builder: ({ entity, context }) =>
<AsyncPreviewComponent builder={
context.dataSource.fetchEntity({
path: entity.path,
entityId: entity.id,
collection: localeSchema
}).then((entity) => entity.values.name)
}/>
};