Files
wehub-resource-sync 0232b4e2bb
CI / build (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:09:51 +08:00

105 lines
2.9 KiB
TypeScript

/**
* Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
* SPDX-License-Identifier: MIT
*/
import React from 'react';
import { Field } from '@flowgram.ai/free-layout-editor';
import { createInferInputsPlugin } from '@flowgram.ai/form-materials';
import { FreeFormMetaStoryBuilder, FormHeader } from '../../free-form-meta-story-builder';
const InputsValues = React.lazy(() =>
import('@flowgram.ai/form-materials').then((module) => ({
default: module.InputsValues,
}))
);
const InputsValuesTree = React.lazy(() =>
import('@flowgram.ai/form-materials').then((module) => ({
default: module.InputsValuesTree,
}))
);
/**
* Basic usage story - demonstrates automatic schema inference from InputsValues
*/
export const BasicStory = () => (
<FreeFormMetaStoryBuilder
filterEndNode
height={500}
formMeta={{
render: () => (
<>
<FormHeader />
<div>
<div>
<h4>Headers</h4>
<Field<Record<string, any> | undefined>
name="headersValues"
defaultValue={{
'Content-Type': {
type: 'constant',
content: 'application/json',
schema: { type: 'string' },
},
Authorization: {
type: 'ref',
content: ['start_0', 'str'],
},
}}
>
{({ field }) => (
<InputsValues value={field.value} onChange={(value) => field.onChange(value)} />
)}
</Field>
</div>
<div>
<h4>Body</h4>
<Field<Record<string, any> | undefined>
name="bodyValues"
defaultValue={{
page: {
index: {
type: 'ref',
content: ['start_0', 'obj', 'obj2', 'num'],
},
size: {
type: 'constant',
content: 10,
schema: { type: 'number' },
},
},
query: {
type: 'ref',
content: ['start_0', 'obj'],
},
}}
>
{({ field }) => (
<InputsValuesTree
value={field.value}
onChange={(value) => field.onChange(value)}
/>
)}
</Field>
</div>
</div>
</>
),
plugins: [
createInferInputsPlugin({
sourceKey: 'headersValues',
targetKey: 'headersSchema',
}),
createInferInputsPlugin({
sourceKey: 'bodyValues',
targetKey: 'bodySchema',
}),
],
}}
/>
);