From bf34db377db8529d067004ed52cbca01bcf94d0c Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 10 Jul 2026 03:54:52 +0300 Subject: [PATCH] =?UTF-8?q?feat(integrations):=20=D0=BF=D0=BE=D0=BB=D0=B5?= =?UTF-8?q?=20=C2=AB=D0=9F=D1=80=D0=BE=D0=BA=D1=81=D0=B8=C2=BB=20=D0=B2=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B5=20=D0=B8=D0=BD=D1=82=D0=B5=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20(frontend)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - model.ts: config.proxyUrl в типе Integration. - IntegrationForm.tsx: стейт proxyUrl, поле «Прокси» (placeholder http://user:pass@host:port) для всех провайдеров кроме WEB (виджет клиентский), proxyUrl в payload create/update. --- .../src/features/integrations/IntegrationForm.tsx | 6 +++++- apps/internal-ui/src/features/integrations/model.ts | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/internal-ui/src/features/integrations/IntegrationForm.tsx b/apps/internal-ui/src/features/integrations/IntegrationForm.tsx index ecb4b50..f656797 100644 --- a/apps/internal-ui/src/features/integrations/IntegrationForm.tsx +++ b/apps/internal-ui/src/features/integrations/IntegrationForm.tsx @@ -18,6 +18,7 @@ export function IntegrationForm({ initial, onClose, onSaved }: { initial: Integr const [secret, setSecret] = useState(""); const [baseUrl, setBaseUrl] = useState(initial?.config.baseUrl ?? ""); const [defaultModel, setDefaultModel] = useState(initial?.config.defaultModel ?? ""); + const [proxyUrl, setProxyUrl] = useState(initial?.config.proxyUrl ?? ""); const [channelId, setChannelId] = useState(initial?.channel ? String(initial.channel.id) : ""); const [channels, setChannels] = useState([]); const [submitting, setSubmitting] = useState(false); @@ -49,7 +50,7 @@ export function IntegrationForm({ initial, onClose, onSaved }: { initial: Integr if (!ready) return; setSubmitting(true); setError(null); - const config = { baseUrl: baseUrl.trim(), defaultModel: defaultModel.trim() }; + const config = { baseUrl: baseUrl.trim(), defaultModel: defaultModel.trim(), proxyUrl: proxyUrl.trim() }; const channel = isMessenger ? { channelId: channelId ? Number(channelId) : null } : {}; try { if (isEdit) { @@ -90,6 +91,9 @@ export function IntegrationForm({ initial, onClose, onSaved }: { initial: Integr /> )} + {!isWeb && ( + + )} {meta.hasModel && ( )} diff --git a/apps/internal-ui/src/features/integrations/model.ts b/apps/internal-ui/src/features/integrations/model.ts index 94c2739..0b9d053 100644 --- a/apps/internal-ui/src/features/integrations/model.ts +++ b/apps/internal-ui/src/features/integrations/model.ts @@ -10,7 +10,7 @@ export type Integration = { provider: IntegrationProvider; name: string; hasSecret: boolean; - config: { baseUrl: string; defaultModel: string; botId: string; botUsername: string; botName: string }; + config: { baseUrl: string; defaultModel: string; proxyUrl: string; botId: string; botUsername: string; botName: string }; channel: { id: number; code: string; name: string } | null; status: IntegrationStatus; lastCheckedAt: string | null;