From fbd5a55c5d82fbfd498aa93a71092ef4c7e4294f Mon Sep 17 00:00:00 2001 From: hgaol Date: Wed, 6 Aug 2025 00:17:00 +0800 Subject: [PATCH 1/3] fix: failed to build plugins in windows --- internal/cli/build.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/cli/build.go b/internal/cli/build.go index 43a7aa9fe..a5a4d938e 100644 --- a/internal/cli/build.go +++ b/internal/cli/build.go @@ -484,6 +484,7 @@ func copyDirEntries(sourceFs fs.FS, sourceDir, targetDir string, ignoreDir ...st // Construct the absolute path for the source file/directory srcPath := filepath.Join(sourceDir, path) + srcPath = filepath.ToSlash(srcPath) // Construct the absolute path for the destination file/directory dstPath := filepath.Join(targetDir, path) From 9b7c2bd85ab91b18d0044b51955a3878168b2117 Mon Sep 17 00:00:00 2001 From: shuai Date: Fri, 8 Aug 2025 10:20:46 +0800 Subject: [PATCH 2/3] feat: schemeForm support tagSelector component --- .../SchemaForm/components/TagSelector.tsx | 66 +++++++++++++++++++ .../components/SchemaForm/components/index.ts | 2 + ui/src/components/SchemaForm/index.tsx | 13 +++- ui/src/components/SchemaForm/types.ts | 6 +- 4 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 ui/src/components/SchemaForm/components/TagSelector.tsx diff --git a/ui/src/components/SchemaForm/components/TagSelector.tsx b/ui/src/components/SchemaForm/components/TagSelector.tsx new file mode 100644 index 000000000..f23b14f65 --- /dev/null +++ b/ui/src/components/SchemaForm/components/TagSelector.tsx @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { FC } from 'react'; + +import { TagSelector } from '@/components'; +import type * as Type from '@/common/interface'; + +interface Props { + maxTagLength?: number; + description?: string; + fieldName: string; + onChange?: (fd: Type.FormDataType) => void; + formData: Type.FormDataType; +} +const Index: FC = ({ + description, + maxTagLength, + fieldName, + onChange, + formData, +}) => { + const fieldObject = formData[fieldName]; + const handleChange = (data: Type.Tag[]) => { + const state = { + ...formData, + [fieldName]: { + ...formData[fieldName], + value: data, + isInvalid: false, + }, + }; + if (typeof onChange === 'function') { + onChange(state); + } + }; + + return ( + + ); +}; + +export default Index; diff --git a/ui/src/components/SchemaForm/components/index.ts b/ui/src/components/SchemaForm/components/index.ts index df28f4ac2..2a75307d1 100644 --- a/ui/src/components/SchemaForm/components/index.ts +++ b/ui/src/components/SchemaForm/components/index.ts @@ -27,6 +27,7 @@ import Textarea from './Textarea'; import Input from './Input'; import Button from './Button'; import InputGroup from './InputGroup'; +import TagSelector from './TagSelector'; export { Legend, @@ -39,4 +40,5 @@ export { Input, Button, InputGroup, + TagSelector, }; diff --git a/ui/src/components/SchemaForm/index.tsx b/ui/src/components/SchemaForm/index.tsx index 6b7cbbf02..421e0b1e1 100644 --- a/ui/src/components/SchemaForm/index.tsx +++ b/ui/src/components/SchemaForm/index.tsx @@ -51,6 +51,7 @@ import { Input, Button as SfButton, InputGroup, + TagSelector, } from './components'; export * from './types'; @@ -258,6 +259,7 @@ const SchemaForm: ForwardRefRenderFunction = ( description, enum: enumValues = [], enumNames = [], + max_length = 0, } = properties[key]; const { 'ui:widget': widget = 'input', 'ui:options': uiOpt } = uiSchema?.[key] || {}; @@ -413,11 +415,20 @@ const SchemaForm: ForwardRefRenderFunction = ( /> ) : null} + {widget === 'tag_selector' ? ( + + ) : null} {/* Unified handling of `Feedback` and `Text` */} {fieldState?.errorMsg} - {description ? ( + {description && widget !== 'tag_selector' ? ( ) : null} diff --git a/ui/src/components/SchemaForm/types.ts b/ui/src/components/SchemaForm/types.ts index 8347b98fa..db1aa8a5b 100644 --- a/ui/src/components/SchemaForm/types.ts +++ b/ui/src/components/SchemaForm/types.ts @@ -44,12 +44,13 @@ export interface JSONSchema { required?: string[]; properties: { [key: string]: { - type: 'string' | 'boolean' | 'number'; + type?: 'string' | 'boolean' | 'number'; title: string; description?: string; enum?: Array; enumNames?: string[]; default?: string | boolean | number | any[]; + max_length?: number; }; }; } @@ -152,7 +153,8 @@ export type UIWidget = | 'switch' | 'legend' | 'button' - | 'input_group'; + | 'input_group' + | 'tag_selector'; export interface UISchema { [key: string]: { 'ui:widget'?: UIWidget; From 39ea19034dd84dcdd85dafb5e6d84434de08e243 Mon Sep 17 00:00:00 2001 From: shuai Date: Fri, 8 Aug 2025 10:22:13 +0800 Subject: [PATCH 3/3] fix: footer remove background color --- ui/src/components/Footer/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/components/Footer/index.tsx b/ui/src/components/Footer/index.tsx index 4e4b3aa00..ad6e27559 100644 --- a/ui/src/components/Footer/index.tsx +++ b/ui/src/components/Footer/index.tsx @@ -32,7 +32,7 @@ const Index = () => { const cc = `${fullYear} ${siteName}`; return ( -