Flow elements
Yield
Learn how the yield element is used in the flow.
Usage
The yield element calls the onYield callback when the user navigates between steps, yielding values both when going forward and backward.
TSX
type Schema = {
render: React.ReactNode;
struct: [
s.Form<{ name: string; surname: string; age: number }>,
s.Yield<{
next: [{ name: string; surname: string; age: number }];
back: [];
}>,
s.Form<{ softwareDeveloper: string }>,
s.Yield<{
next: [{ softwareDeveloper: string }];
back: [];
}>,
s.Return<{
name: string;
surname: string;
age: number;
softwareDeveloper: string;
}>,
];
inputs: Record<never, never>;
params: Record<never, never>;
};
const flow: Flow<Schema> = [
{
form: {
fields: () => ({
name: ["", []],
surname: ["", []],
age: [20, []],
}),
render: ({ fields, onBack, onNext }) => (
<AboutMeForm fields={fields} onBack={onBack} onNext={onNext} />
),
},
},
{
yield: {
next: ({ name, surname, age }) => [{ name, surname, age }],
back: () => [],
},
},
{
form: {
fields: () => ({ softwareDeveloper: ["", []] }),
render: ({ fields, onBack, onNext }) => (
<SoftwareDeveloperForm
fields={fields}
onBack={onBack}
onNext={onNext}
/>
),
},
},
{
yield: {
next: ({ softwareDeveloper }) => [{ softwareDeveloper }],
back: () => [],
},
},
{
return: ({ name, surname, age, softwareDeveloper }) => ({
name,
surname,
age,
softwareDeveloper,
}),
},
];
When navigating forward, next is called; when navigating backward, back is called. Both receive the flow values and return an array in which each element triggers one call to onYield.