|
|
@@ -6,7 +6,7 @@ import { showToast } from "@/utils/toast"
|
|
|
import { popularProviders, useProviders } from "@/hooks/use-providers"
|
|
|
import { createMemo, type Component, For, Show } from "solid-js"
|
|
|
import { useLanguage } from "@/context/language"
|
|
|
-import { useServerSDK } from "@/context/server-sdk"
|
|
|
+import { useServerProtocol, useServerSDK } from "@/context/server-sdk"
|
|
|
import { useServerSync } from "@/context/server-sync"
|
|
|
import { DialogConnectProvider, useProviderConnectController } from "../dialog-connect-provider"
|
|
|
import { DialogCustomProvider } from "../dialog-custom-provider"
|
|
|
@@ -33,6 +33,7 @@ export const SettingsProvidersV2: Component<{ onBack?: () => void }> = (props) =
|
|
|
const dialog = useDialog()
|
|
|
const language = useLanguage()
|
|
|
const serverSdk = useServerSDK()
|
|
|
+ const protocol = useServerProtocol()
|
|
|
const serverSync = useServerSync()
|
|
|
const providers = useProviders()
|
|
|
const providerConnect = useProviderConnectController({ onBack: props.onBack })
|
|
|
@@ -77,7 +78,8 @@ export const SettingsProvidersV2: Component<{ onBack?: () => void }> = (props) =
|
|
|
return language.t("settings.providers.tag.other")
|
|
|
}
|
|
|
|
|
|
- const canDisconnect = (item: ProviderItem) => source(item) !== "env"
|
|
|
+ const canDisconnect = (item: ProviderItem) =>
|
|
|
+ source(item) !== "env" && (protocol() === "v1" || !isConfigCustom(item.id))
|
|
|
|
|
|
const note = (id: string) => PROVIDER_NOTES.find((item) => item.match(id))?.key
|
|
|
|
|
|
@@ -90,6 +92,7 @@ export const SettingsProvidersV2: Component<{ onBack?: () => void }> = (props) =
|
|
|
}
|
|
|
|
|
|
const disableProvider = async (providerID: string, name: string) => {
|
|
|
+ if (protocol() !== "v1") return
|
|
|
const before = serverSync().data.config.disabled_providers ?? []
|
|
|
const next = before.includes(providerID) ? before : [...before, providerID]
|
|
|
serverSync().set("config", "disabled_providers", next)
|
|
|
@@ -218,33 +221,35 @@ export const SettingsProvidersV2: Component<{ onBack?: () => void }> = (props) =
|
|
|
)}
|
|
|
</For>
|
|
|
|
|
|
- <div class="settings-v2-provider-row" data-component="custom-provider-section">
|
|
|
- <div class="settings-v2-provider-lead">
|
|
|
- <ProviderIcon
|
|
|
- id="synthetic"
|
|
|
- width={PROVIDER_ICON_SIZE}
|
|
|
- height={PROVIDER_ICON_SIZE}
|
|
|
- class="settings-v2-provider-icon shrink-0"
|
|
|
- />
|
|
|
- <div class="settings-v2-provider-copy">
|
|
|
- <div class="settings-v2-provider-main">
|
|
|
- <span class="settings-v2-provider-name">{language.t("provider.custom.title")}</span>
|
|
|
- <Tag>{language.t("settings.providers.tag.custom")}</Tag>
|
|
|
+ <Show when={protocol() === "v1"}>
|
|
|
+ <div class="settings-v2-provider-row" data-component="custom-provider-section">
|
|
|
+ <div class="settings-v2-provider-lead">
|
|
|
+ <ProviderIcon
|
|
|
+ id="synthetic"
|
|
|
+ width={PROVIDER_ICON_SIZE}
|
|
|
+ height={PROVIDER_ICON_SIZE}
|
|
|
+ class="settings-v2-provider-icon shrink-0"
|
|
|
+ />
|
|
|
+ <div class="settings-v2-provider-copy">
|
|
|
+ <div class="settings-v2-provider-main">
|
|
|
+ <span class="settings-v2-provider-name">{language.t("provider.custom.title")}</span>
|
|
|
+ <Tag>{language.t("settings.providers.tag.custom")}</Tag>
|
|
|
+ </div>
|
|
|
+ <p class="settings-v2-provider-description">{language.t("settings.providers.custom.description")}</p>
|
|
|
</div>
|
|
|
- <p class="settings-v2-provider-description">{language.t("settings.providers.custom.description")}</p>
|
|
|
</div>
|
|
|
+ <ButtonV2
|
|
|
+ size="normal"
|
|
|
+ variant="neutral"
|
|
|
+ icon="plus"
|
|
|
+ onClick={() => {
|
|
|
+ dialog.show(() => <DialogCustomProvider onBack={dialog.close} />)
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {language.t("common.connect")}
|
|
|
+ </ButtonV2>
|
|
|
</div>
|
|
|
- <ButtonV2
|
|
|
- size="normal"
|
|
|
- variant="neutral"
|
|
|
- icon="plus"
|
|
|
- onClick={() => {
|
|
|
- dialog.show(() => <DialogCustomProvider onBack={dialog.close} />)
|
|
|
- }}
|
|
|
- >
|
|
|
- {language.t("common.connect")}
|
|
|
- </ButtonV2>
|
|
|
- </div>
|
|
|
+ </Show>
|
|
|
</SettingsListV2>
|
|
|
|
|
|
<button type="button" class="settings-v2-providers-view-all" onClick={() => connect()}>
|