"use client"; import { useParams, notFound } from "next/navigation"; import Link from "next/link"; import { useState, useEffect } from "react"; import { Card, Badge } from "@/shared/components"; import ProviderIcon from "@/shared/components/ProviderIcon"; import { MEDIA_PROVIDER_KINDS, AI_PROVIDERS, getProviderAlias } from "@/shared/constants/providers"; import { getModelsByProviderId } from "@/shared/constants/models"; import { useCopyToClipboard } from "@/shared/hooks/useCopyToClipboard"; import ConnectionsCard from "@/app/(dashboard)/dashboard/providers/components/ConnectionsCard"; import ModelsCard from "@/app/(dashboard)/dashboard/providers/components/ModelsCard"; import { TTS_PROVIDER_CONFIG } from "@/shared/constants/ttsProviders"; // Shared row layout — defined outside components to avoid re-mount on re-render function Row({ label, children }) { return (
{curlSnippet}
{error}
} {/* Response — default example or real result */}
{formatResultJson(result?.data)}
{curlSnippet}
{error}
} {/* Audio player */} {audioUrl ? (
{JSON.stringify({
format: jsonResponse.format,
audio: jsonResponse.audio ? `${jsonResponse.audio.substring(0, 100)}...` : ""
}, null, 2)}
Audio will appear here after running.
)}{modalError}
} {modalLoading ? (Loading...
) : (No languages found.
)}No authentication required
This provider is ready to use.