Przeglądaj źródła

fix: webapps not show number type input field (#4292)

Joel 11 miesięcy temu
rodzic
commit
34d3998566

+ 11 - 0
web/app/components/base/chat/chat-with-history/config-panel/form.tsx

@@ -37,6 +37,17 @@ const Form = () => {
         />
       )
     }
+    if (form.type === 'number') {
+      return (
+        <input
+          className="grow h-9 rounded-lg bg-gray-100 px-2.5 outline-none appearance-none"
+          type="number"
+          value={newConversationInputs[variable] || ''}
+          onChange={e => handleFormChange(variable, e.target.value)}
+          placeholder={`${label}${!required ? `(${t('appDebug.variableTable.optional')})` : ''}`}
+        />
+      )
+    }
 
     return (
       <PortalSelect

+ 9 - 2
web/app/components/base/chat/chat-with-history/hooks.tsx

@@ -129,19 +129,26 @@ export const useChatWithHistory = (installedAppInfo?: InstalledApp) => {
     setNewConversationInputs(newInputs)
   }, [])
   const inputsForms = useMemo(() => {
-    return (appParams?.user_input_form || []).filter((item: any) => item.paragraph || item.select || item['text-input']).map((item: any) => {
+    return (appParams?.user_input_form || []).filter((item: any) => item.paragraph || item.select || item['text-input'] || item.number).map((item: any) => {
       if (item.paragraph) {
         return {
           ...item.paragraph,
           type: 'paragraph',
         }
       }
+      if (item.number) {
+        return {
+          ...item.number,
+          type: 'number',
+        }
+      }
       if (item.select) {
         return {
           ...item.select,
           type: 'select',
         }
       }
+
       return {
         ...item['text-input'],
         type: 'text-input',
@@ -226,7 +233,7 @@ export const useChatWithHistory = (installedAppInfo?: InstalledApp) => {
       setShowNewConversationItemInList(true)
     }
   }, [setShowConfigPanelBeforeChat, setShowNewConversationItemInList, checkInputsRequired])
-  const currentChatInstanceRef = useRef<{ handleStop: () => void }>({ handleStop: () => {} })
+  const currentChatInstanceRef = useRef<{ handleStop: () => void }>({ handleStop: () => { } })
   const handleChangeConversation = useCallback((conversationId: string) => {
     currentChatInstanceRef.current.handleStop()
     setNewConversationId('')