diff --git a/packages/ui/src/assets/provider-logos/exe-dev.svg b/packages/ui/src/assets/provider-logos/exe-dev.svg new file mode 100644 index 00000000..c761f9e5 --- /dev/null +++ b/packages/ui/src/assets/provider-logos/exe-dev.svg @@ -0,0 +1,9 @@ + + exe.dev + + + + + + + diff --git a/packages/ui/src/hooks/useProviderLogo.test.ts b/packages/ui/src/hooks/useProviderLogo.test.ts new file mode 100644 index 00000000..940b2bd2 --- /dev/null +++ b/packages/ui/src/hooks/useProviderLogo.test.ts @@ -0,0 +1,11 @@ +import { describe, expect, test } from 'bun:test'; +import { readFileSync } from 'node:fs'; + +const source = readFileSync(new URL('./useProviderLogo.ts', import.meta.url), 'utf8'); + +describe('provider logo aliases', () => { + test('maps rotating exe.dev proxy provider IDs to the local exe.dev logo', () => { + expect(source).toContain("compact.startsWith('exe-') ? 'exe-dev' : undefined"); + expect(source).toContain('const candidates = [prefixAlias,'); + }); +}); diff --git a/packages/ui/src/hooks/useProviderLogo.ts b/packages/ui/src/hooks/useProviderLogo.ts index 011d1110..80ded66d 100644 --- a/packages/ui/src/hooks/useProviderLogo.ts +++ b/packages/ui/src/hooks/useProviderLogo.ts @@ -45,7 +45,8 @@ const buildLogoCandidates = (providerId: string | null | undefined) => { const compact = normalized.replace(/[^a-z0-9_\-./:]/g, ''); const primary = compact.split(/[/:]/)[0] || compact; - const candidates = [LOGO_ALIAS.get(compact), LOGO_ALIAS.get(primary), compact, primary] + const prefixAlias = compact.startsWith('exe-') ? 'exe-dev' : undefined; + const candidates = [prefixAlias, LOGO_ALIAS.get(compact), LOGO_ALIAS.get(primary), compact, primary] .filter((value): value is string => Boolean(value && value.length > 0)); return [...new Set(candidates)];