From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001 From: wwf <yearningwang@iqtogether.com> Date: 星期三, 04 六月 2025 15:17:49 +0800 Subject: [PATCH] 初始化 --- app/components/base/markdown-blocks/form.tsx | 112 +++++-------------------------------------------------- 1 files changed, 11 insertions(+), 101 deletions(-) diff --git a/app/components/base/markdown-blocks/form.tsx b/app/components/base/markdown-blocks/form.tsx index ab7e7ce..7ce3e82 100644 --- a/app/components/base/markdown-blocks/form.tsx +++ b/app/components/base/markdown-blocks/form.tsx @@ -2,10 +2,6 @@ import Button from '@/app/components/base/button' import Input from '@/app/components/base/input' import Textarea from '@/app/components/base/textarea' -import DatePicker from '@/app/components/base/date-and-time-picker/date-picker' -import TimePicker from '@/app/components/base/date-and-time-picker/time-picker' -import Checkbox from '@/app/components/base/checkbox' -import Select from '@/app/components/base/select' import { useChatContext } from '@/app/components/base/chat/chat/context' enum DATA_FORMAT { @@ -23,13 +19,18 @@ PASSWORD = 'password', EMAIL = 'email', NUMBER = 'number', - DATE = 'date', - TIME = 'time', - DATETIME = 'datetime', - CHECKBOX = 'checkbox', - SELECT = 'select', } const MarkdownForm = ({ node }: any) => { + // const supportedTypes = ['text', 'password', 'email', 'number'] + // <form data-format="text"> + // <label for="username">Username:</label> + // <input type="text" name="username" /> + // <label for="password">Password:</label> + // <input type="password" name="password" /> + // <label for="content">Content:</label> + // <textarea name="content"></textarea> + // <button data-size="small" data-variant="primary">Login</button> + // </form> const { onSend } = useChatContext() const [formValues, setFormValues] = useState<{ [key: string]: any }>({}) @@ -82,104 +83,13 @@ <label key={index} htmlFor={child.properties.for} - className="system-md-semibold my-2 text-text-secondary" + className="my-2 system-md-semibold text-text-secondary" > {child.children[0]?.value || ''} </label> ) } if (child.tagName === SUPPORTED_TAGS.INPUT && Object.values(SUPPORTED_TYPES).includes(child.properties.type)) { - if (child.properties.type === SUPPORTED_TYPES.DATE || child.properties.type === SUPPORTED_TYPES.DATETIME) { - return ( - <DatePicker - key={index} - value={formValues[child.properties.name]} - needTimePicker={child.properties.type === SUPPORTED_TYPES.DATETIME} - onChange={(date) => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: date, - })) - }} - onClear={() => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: undefined, - })) - }} - /> - ) - } - if (child.properties.type === SUPPORTED_TYPES.TIME) { - return ( - <TimePicker - key={index} - value={formValues[child.properties.name]} - onChange={(time) => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: time, - })) - }} - onClear={() => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: undefined, - })) - }} - /> - ) - } - if (child.properties.type === SUPPORTED_TYPES.CHECKBOX) { - return ( - <div className='mt-2 flex h-6 items-center space-x-2' key={index}> - <Checkbox - key={index} - checked={formValues[child.properties.name]} - onCheck={() => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: !prevValues[child.properties.name], - })) - }} - /> - <span>{child.properties.dataTip || child.properties['data-tip'] || ''}</span> - </div> - ) - } - if (child.properties.type === SUPPORTED_TYPES.SELECT) { - return ( - <Select - key={index} - allowSearch={false} - className="w-full" - items={(() => { - let options = child.properties.dataOptions || child.properties['data-options'] || [] - if (typeof options === 'string') { - try { - options = JSON.parse(options) - } - catch (e) { - console.error('Failed to parse options:', e) - options = [] - } - } - return options.map((option: string) => ({ - name: option, - value: option, - })) - })()} - defaultValue={formValues[child.properties.name]} - onSelect={(item) => { - setFormValues(prevValues => ({ - ...prevValues, - [child.properties.name]: item.value, - })) - }} - /> - ) - } - return ( <Input key={index} -- Gitblit v1.8.0