feat: show connected providers in /connect dialog (#8351)

This commit is contained in:
Akshar Patel
2026-01-14 02:35:59 -05:00
committed by GitHub
parent f9fcdead55
commit a57c8669b6

View File

@@ -26,11 +26,14 @@ export function createDialogProviderOptions() {
const sync = useSync() const sync = useSync()
const dialog = useDialog() const dialog = useDialog()
const sdk = useSDK() const sdk = useSDK()
const connected = createMemo(() => new Set(sync.data.provider_next.connected))
const options = createMemo(() => { const options = createMemo(() => {
return pipe( return pipe(
sync.data.provider_next.all, sync.data.provider_next.all,
sortBy((x) => PROVIDER_PRIORITY[x.id] ?? 99), sortBy((x) => PROVIDER_PRIORITY[x.id] ?? 99),
map((provider) => ({ map((provider) => {
const isConnected = connected().has(provider.id)
return {
title: provider.name, title: provider.name,
value: provider.id, value: provider.id,
description: { description: {
@@ -39,6 +42,7 @@ export function createDialogProviderOptions() {
openai: "(ChatGPT Plus/Pro or API key)", openai: "(ChatGPT Plus/Pro or API key)",
}[provider.id], }[provider.id],
category: provider.id in PROVIDER_PRIORITY ? "Popular" : "Other", category: provider.id in PROVIDER_PRIORITY ? "Popular" : "Other",
footer: isConnected ? "Connected" : undefined,
async onSelect() { async onSelect() {
const methods = sync.data.provider_auth[provider.id] ?? [ const methods = sync.data.provider_auth[provider.id] ?? [
{ {
@@ -86,7 +90,8 @@ export function createDialogProviderOptions() {
return dialog.replace(() => <ApiMethod providerID={provider.id} title={method.label} />) return dialog.replace(() => <ApiMethod providerID={provider.id} title={method.label} />)
} }
}, },
})), }
}),
) )
}) })
return options return options