Browse Source
- Create shared getModelPageUrl utility in src/utils/providerUrls.ts - Add external-link icon to GenerateImageNode header (before Browse button) - Add external-link icon to GenerateVideoNode header (before Browse button) - Add external-link icon to Generate3DNode header (before Browse button) - Icon only appears when model is selected and provider has a page URL - Gemini models show no link (returns null); Replicate/fal/Kie/WaveSpeed show links Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>handoff-20260429-1057
4 changed files with 142 additions and 25 deletions
@ -0,0 +1,47 @@ |
|||||
|
import { ProviderType } from "@/types"; |
||||
|
|
||||
|
/** |
||||
|
* Get the URL to a model's page on its provider's website. |
||||
|
* Returns null for providers without model pages (e.g., Gemini). |
||||
|
*/ |
||||
|
export function getModelPageUrl( |
||||
|
provider: ProviderType, |
||||
|
modelId: string, |
||||
|
pageUrl?: string |
||||
|
): string | null { |
||||
|
if (pageUrl) return pageUrl; |
||||
|
switch (provider) { |
||||
|
case "replicate": { |
||||
|
const baseModelId = modelId.split(":")[0]; |
||||
|
return `https://replicate.com/${baseModelId}`; |
||||
|
} |
||||
|
case "fal": |
||||
|
return `https://fal.ai/models/${modelId}`; |
||||
|
case "kie": |
||||
|
return `https://docs.kie.ai/`; |
||||
|
case "wavespeed": |
||||
|
return `https://wavespeed.ai`; |
||||
|
default: |
||||
|
return null; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Get the display name for a provider. |
||||
|
*/ |
||||
|
export function getProviderDisplayName(provider: ProviderType): string { |
||||
|
switch (provider) { |
||||
|
case "gemini": |
||||
|
return "Gemini"; |
||||
|
case "replicate": |
||||
|
return "Replicate"; |
||||
|
case "fal": |
||||
|
return "fal.ai"; |
||||
|
case "kie": |
||||
|
return "Kie.ai"; |
||||
|
case "wavespeed": |
||||
|
return "WaveSpeed"; |
||||
|
default: |
||||
|
return provider; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue