From dadad8dcb3b2a449140a9c490d94b7c1e8ab1d47 Mon Sep 17 00:00:00 2001 From: lethemanh Date: Mon, 2 Mar 2026 12:30:47 +0700 Subject: [PATCH 1/6] fix: Remove API key step when creating openrag assistant :bug: --- .../CreateAssistantSteps/providers.json | 1 - .../useAssistantDialog.js | 19 ++++++++++++++----- .../Views/CreateAssistantDialog.jsx | 3 ++- .../components/Views/EditAssistantDialog.jsx | 8 +++++--- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/cozy-search/src/components/CreateAssistantSteps/providers.json b/packages/cozy-search/src/components/CreateAssistantSteps/providers.json index ce61c47fb6..5099f2af69 100644 --- a/packages/cozy-search/src/components/CreateAssistantSteps/providers.json +++ b/packages/cozy-search/src/components/CreateAssistantSteps/providers.json @@ -5,7 +5,6 @@ "models": ["openrag"], "description": "assistant_create.steps.provider_selection.openrag.description", "icon": "OpenRagLogo", - "baseUrl": "/api/openrag", "external": false }, { diff --git a/packages/cozy-search/src/components/CreateAssistantSteps/useAssistantDialog.js b/packages/cozy-search/src/components/CreateAssistantSteps/useAssistantDialog.js index 162ca6a883..6d46711412 100644 --- a/packages/cozy-search/src/components/CreateAssistantSteps/useAssistantDialog.js +++ b/packages/cozy-search/src/components/CreateAssistantSteps/useAssistantDialog.js @@ -1,7 +1,7 @@ -import { useState } from 'react' +import { useMemo, useState } from 'react' +import { useI18n, useExtendI18n } from 'twake-i18n' import { useAlert } from 'cozy-ui/transpiled/react/providers/Alert' -import { useI18n, useExtendI18n } from 'twake-i18n' import { locales } from '../../locales' @@ -38,6 +38,13 @@ export const useAssistantDialog = ({ onClose, initialData = {} }) => { ...initialData }) + const canSubmit = useMemo( + () => + step === STEPS.API_KEY || + (step === STEPS.MODEL_SELECTION && selectedProvider?.id === 'openrag'), + [step, selectedProvider?.id] + ) + const handleChange = field => event => { const value = event.target?.value !== undefined ? event.target.value : event setFormData(prev => ({ ...prev, [field]: value })) @@ -58,7 +65,8 @@ export const useAssistantDialog = ({ onClose, initialData = {} }) => { setFormData(prev => ({ ...prev, baseUrl: provider.baseUrl, - isCustomModel: provider.id === 'custom' + isCustomModel: provider.id === 'custom', + model: provider.id === 'openrag' ? provider.models[0] : prev.model })) setSelectedProvider({ ...provider, @@ -80,7 +88,7 @@ export const useAssistantDialog = ({ onClose, initialData = {} }) => { */ const handleNext = async onSubmit => { try { - if (step === STEPS.API_KEY) { + if (canSubmit) { await onSubmit(formData) onClose() } else { @@ -117,6 +125,7 @@ export const useAssistantDialog = ({ onClose, initialData = {} }) => { handleBack, handleNext, isNextDisabled, - handleChangeModel + handleChangeModel, + canSubmit } } diff --git a/packages/cozy-search/src/components/Views/CreateAssistantDialog.jsx b/packages/cozy-search/src/components/Views/CreateAssistantDialog.jsx index 7fe66b43b1..2870584ee0 100644 --- a/packages/cozy-search/src/components/Views/CreateAssistantDialog.jsx +++ b/packages/cozy-search/src/components/Views/CreateAssistantDialog.jsx @@ -35,6 +35,7 @@ const CreateAssistantDialog = ({ open, onClose }) => { step, formData, selectedProvider, + canSubmit, handleBack, handleNext, handleChange, @@ -102,7 +103,7 @@ const CreateAssistantDialog = ({ open, onClose }) => { onClick={() => handleNext(onSubmit)} disabled={isNextDisabled()} label={ - step === STEPS.API_KEY + canSubmit ? t('assistant_create.buttons.create') : t('assistant_create.buttons.next') } diff --git a/packages/cozy-search/src/components/Views/EditAssistantDialog.jsx b/packages/cozy-search/src/components/Views/EditAssistantDialog.jsx index fc0ba54fa6..87be0e8fa4 100644 --- a/packages/cozy-search/src/components/Views/EditAssistantDialog.jsx +++ b/packages/cozy-search/src/components/Views/EditAssistantDialog.jsx @@ -38,6 +38,7 @@ const EditAssistantDialog = ({ open, onClose }) => { step, formData, selectedProvider, + canSubmit, setFormData, setSelectedProvider, handleBack, @@ -67,7 +68,8 @@ const EditAssistantDialog = ({ open, onClose }) => { isCustomModel: assistant.isCustomModel || false, model: provider?.auth?.login || '', baseUrl: provider?.data?.baseUrl || '', - apiKey: provider?.auth?.apiKey || '' + apiKey: provider?.auth?.apiKey || '', + encryptedApiKey: provider?.auth?.credentials_encrypted || '' }) const selectProviderDefault = getSelectedProviderByModel( @@ -138,9 +140,9 @@ const EditAssistantDialog = ({ open, onClose }) => {