We are Coltor Apps ― a software development agency behind this OSS. Need a reliable tech partner?

Let’s talk

React API Reference

BuilderEntities

This React component is used to render the entities tree of a builder store.

Reference

<BuilderEntities builderStore components children? />

Use the BuilderEntities component to render the entities tree.

import { BuilderEntities, useBuilderStore } from "@coltorapps/builder-react";

import { formBuilder } from "./form-builder";
import { BuilderTextFieldEntity } from "./text-field-entity";

const components = { textField: BuilderTextFieldEntity };

export function App() {
  const builderStore = useBuilderStore(formBuilder);

  return (
    <BuilderEntities builderStore={builderStore} components={components} />
  );
}

Props

The BuilderEntities component accepts three props:

PropTypeDescription
builderStoreobjectThe builder store.
componentsobjectAn object mapping of builder entities components for each defined entity type in the builder.
childrenfunction optionalA render prop intended to wrap each rendered arbitrary entity with additional rendering recursively.

Render prop

The children prop of the BuilderEntities component must be a function, which is used to wrap each rendered arbitrary entity with additional rendering. This can be useful, for instance, to render a delete button alongside each entity.

import { BuilderEntities, useBuilderStore } from "@coltorapps/builder-react";

import { formBuilder } from "./form-builder";
import { BuilderTextFieldEntity } from "./text-field-entity";

const components = { textField: BuilderTextFieldEntity };

export function App() {
  const builderStore = useBuilderStore(formBuilder);

  return (
    <BuilderEntities builderStore={builderStore} components={components}>
      {(props) => (
        <div>
          {/* This is the rendered entity. */}
          {props.children}
          <button
            onClick={() => {
              builderStore.deleteEntity(props.entity.id);
            }}
          >
            Delete
          </button>
        </div>
      )}
    </BuilderEntities>
  );
}

Returns

The BuilderEntities component essentially renders an entities tree.

Previous
useAttributeValueUpdated

Canary Branch