'use client' import type { ReactNode } from 'react' import { useAtomValue } from 'jotai' import { useTranslation } from 'react-i18next' import useDocumentTitle from '@/hooks/use-document-title' import Link from '@/next/link' import { CreateReleaseControl } from '../create-release' import { deploymentRouteAppInstanceIdAtom } from '../route-state' import { DeveloperApiHeaderSwitch } from './api-tokens/developer-api-header-switch' import { NewDeploymentHeaderAction } from './instances/header-actions/new-deployment-button' import { deploymentDetailActiveTabAtom } from './state' import { INSTANCE_DETAIL_TAB_KEYS } from './tabs' function MobileDetailTabs() { const { t } = useTranslation('deployments') const appInstanceId = useAtomValue(deploymentRouteAppInstanceIdAtom) const activeTab = useAtomValue(deploymentDetailActiveTabAtom) if (!appInstanceId) return null return ( ) } export function InstanceDetail({ children }: { children: ReactNode }) { const { t } = useTranslation('deployments') const appInstanceId = useAtomValue(deploymentRouteAppInstanceIdAtom) const activeTab = useAtomValue(deploymentDetailActiveTabAtom) useDocumentTitle(t(($) => $['documentTitle.detail'])) if (!appInstanceId) return null return (
{t(($) => $[`tabs.${activeTab}.name`])}
{activeTab === 'api-tokens' && (
)}
{t(($) => $[`tabs.${activeTab}.description`])}
{(activeTab === 'instances' || activeTab === 'releases') && (
{activeTab === 'instances' ? ( ) : ( )}
)}
{children}
) }