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