diff --git a/package-lock.json b/package-lock.json index 81b1f770..abfb8d89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12466,6 +12466,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -13610,22 +13611,6 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/gcp-metadata": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-7.0.1.tgz", - "integrity": "sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "gaxios": "^7.0.0", - "google-logging-utils": "^1.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", diff --git a/package.json b/package.json index ff25e4c7..30ec2022 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "class-validator": "^0.15.1" }, "overrides": { - "rxjs": "7.8.1", - "eslint-plugin-react-hooks": "7.0.1" + "rxjs": "7.8.1" } } diff --git a/packages/frontend/src/app/connectors/store/page.tsx b/packages/frontend/src/app/connectors/store/page.tsx index 7d75e7ec..7871be5b 100644 --- a/packages/frontend/src/app/connectors/store/page.tsx +++ b/packages/frontend/src/app/connectors/store/page.tsx @@ -98,16 +98,23 @@ function AdapterStoreContent() { .finally(() => setLoading(false)); }, [token]); - // Auto-import when ?install= is present (e.g. from website marketplace) - useEffect(() => { - if (autoInstallTriggered.current || loading || !token || list.length === 0) return; - const installSlug = searchParams.get('install'); - if (!installSlug) return; - const adapter = list.find((a) => a.slug === installSlug); - if (!adapter) return; - autoInstallTriggered.current = true; - handleImportClick(adapter); - }, [loading, list, token, searchParams]); + const doImport = async (slug: string, credentials?: Record) => { + if (!token) return; + setImporting(slug); + setMsg(''); + setConfigAdapter(null); + try { + const adapter = list.find((a) => a.slug === slug); + const result = await adapters.import(slug, token, credentials); + setMsg(result.message); + setImporting(null); + // Show MCP assignment modal + setImportedConnector({ id: result.connectorId, name: adapter?.name || slug }); + } catch (err: any) { + setMsg(`Import failed: ${err.message}`); + setImporting(null); + } + }; const handleImportClick = async (adapter: AdapterItem) => { if (!token) return; @@ -136,23 +143,16 @@ function AdapterStoreContent() { } }; - const doImport = async (slug: string, credentials?: Record) => { - if (!token) return; - setImporting(slug); - setMsg(''); - setConfigAdapter(null); - try { - const adapter = list.find((a) => a.slug === slug); - const result = await adapters.import(slug, token, credentials); - setMsg(result.message); - setImporting(null); - // Show MCP assignment modal - setImportedConnector({ id: result.connectorId, name: adapter?.name || slug }); - } catch (err: any) { - setMsg(`Import failed: ${err.message}`); - setImporting(null); - } - }; + // Auto-import when ?install= is present (e.g. from website marketplace) + useEffect(() => { + if (autoInstallTriggered.current || loading || !token || list.length === 0) return; + const installSlug = searchParams.get('install'); + if (!installSlug) return; + const adapter = list.find((a) => a.slug === installSlug); + if (!adapter) return; + autoInstallTriggered.current = true; + handleImportClick(adapter); + }, [loading, list, token, searchParams]); const handleConfigSubmit = () => { if (!configAdapter) return; diff --git a/packages/frontend/src/app/settings/license/page.tsx b/packages/frontend/src/app/settings/license/page.tsx index c2588c74..9e493878 100644 --- a/packages/frontend/src/app/settings/license/page.tsx +++ b/packages/frontend/src/app/settings/license/page.tsx @@ -25,10 +25,6 @@ export default function LicenseSettingsPage() { const isCloud = deploymentMode === 'cloud'; - useEffect(() => { - loadStatus(); - }, [token]); - const loadStatus = async () => { try { const data = await license.getStatus(token || undefined); @@ -38,6 +34,10 @@ export default function LicenseSettingsPage() { } }; + useEffect(() => { + loadStatus(); + }, [token]); + const handleActivate = async () => { if (!token || !licenseKey) return; setError('');