A builder store is the central component used for constructing a schema based on a builder definition. It manages tasks such as adding, removing, and reordering entities, as well as performing entity validation.
You can create a store using the createBuilderStore method from @coltorapps/builder. However, if you are using React, it is recommended to use the useBuilderStore hook from @coltorapps/builder-react instead, as it handles store creation for you.
Basic Usage
import { createBuilderStore } from "@coltorapps/builder";
import { formBuilder } from "./form-builder";
const formBuilderStore = createBuilderStore(formBuilder);
// Adding entities
const section = formBuilderStore.addEntity({
type: "section",
attributes: {
tile: "Personal Information",
},
});
formBuilderStore.addEntity({
type: "textField",
attributes: {
label: "First Name",
required: true,
},
parentId: section.id,
});
// Modifying entities
formBuilderStore.setEntityIndex(entityId, 0);
formBuilderStore.setEntityAttribute(entityId, "required", true);
// Retrieving the schema
const schema = formBuilderStore.getSchema();
import { createBuilderStore } from "@coltorapps/builder";
import { formBuilder } from "./form-builder";
const formBuilderStore = createBuilderStore(formBuilder);
const personalInformationSection = formBuilderStore.addEntity({
type: "section",
attributes: {
tile: "Personal Information",
},
});
formBuilderStore.addEntity({
type: "textField",
attributes: {
label: "First Name",
required: true,
},
parentId: personalInformationSection.id,
});
const lastNameField = formBuilderStore.addEntity({
type: "textField",
attributes: {
label: "Last Name",
required: false,
},
parentId: personalInformationSection.id,
});
formBuilderStore.setEntityIndex(lastNameField.id, 0);
formBuilderStore.setEntityAttribute(lastNameField.id, "required", true);
const schema = formBuilderStore.getSchema();