Skip to content

Entity Views

Entity views let you add custom tabs to the entity detail page alongside the default form. Use them for:

  • Live previews (website preview, rendered content)
  • Related data views (order items, child entities)
  • Analytics or charts
  • Custom editors (rich text, map editors)
const articlesCollection: EntityCollection = {
slug: "articles",
name: "Articles",
entityViews: [
{
key: "preview",
name: "Preview",
Builder: ArticlePreview
},
{
key: "related",
name: "Related Articles",
Builder: RelatedArticlesView
}
],
properties: { /* ... */ }
};
import { EntityCustomViewParams } from "@rebasepro/types";
function ArticlePreview({
entity,
modifiedValues,
formContext
}: EntityCustomViewParams) {
// modifiedValues has the unsaved, live form values
const title = modifiedValues?.title ?? entity?.values?.title;
const content = modifiedValues?.content ?? entity?.values?.content;
return (
<div className="p-8 max-w-2xl mx-auto">
<h1 className="text-3xl font-bold">{title}</h1>
<div dangerouslySetInnerHTML={{ __html: content }} />
</div>
);
}
PropTypeDescription
entityEntityThe saved entity (null for new entities)
modifiedValuesEntityValuesCurrent unsaved form values (live as user types)
formContextFormContextFull form context
collectionEntityCollectionCollection definition

Entity view with secondary form

Views appear as tabs. You can configure their position:

entityViews: [
{
key: "preview",
name: "Preview",
Builder: ArticlePreview,
position: "start" // Appears before the default form tab
}
]