Flexible content builder with repeatable sets.
type ReplicatorField<T extends Record<string, any> = Record<string, any>> = ReplicatorFieldSet<T>[];
type and id properties)type and id property.type TextBlock = ReplicatorFieldSet<{ type: "text"; content: Text }>;
type ImageBlock = ReplicatorFieldSet<{ type: "image"; image: Asset; caption: Text }>;
type ButtonBlock = ReplicatorFieldSet<{ type: "button"; label: Text; url: Text }>;
type ContentBlocks = ReplicatorField<TextBlock | ImageBlock | ButtonBlock>;
// Result: (TextBlock | ImageBlock | ButtonBlock)[]
Structure for Replicator set instances.
Will always require a type and id property.
type ReplicatorFieldSet<T extends Record<string, any> = Record<string, any>> = { type: string; id: string } & T;
type and id property.type MyReplicatorSets =
| ReplicatorFieldSet<{ type: "text"; content: Text }>
| ReplicatorFieldSet<{ type: "image"; image: Asset; caption: Text }>
| ReplicatorFieldSet<{ type: "button"; label: Text; url: Text }>;