'use client'; import { WorkbenchEasySummary, WorkbenchProPanel } from '@/components/workbench-pro-dock-panels'; import type { GptImageModel } from '@/lib/cost-utils'; import { useI18n } from '@/lib/i18n'; import type { ImageUpstreamFormBackend, ImageUpstreamFormStreamingStrategy } from '@/lib/image-upstream-form'; import type { ImageStreamMode, ImageStreamingStrategy } from '@/lib/image-upstream-strategy'; import type { SizePreset } from '@/lib/size-utils'; import * as React from 'react'; export type OutputFormat = 'png' | 'jpeg' | 'webp'; export type Quality = 'low' | 'medium' | 'high' | 'auto'; export type { SizePreset }; export type WorkbenchProDockProps = { outputFormat: OutputFormat; onOutputFormatChange: React.Dispatch>; quality: Quality; onQualityChange: React.Dispatch>; model: GptImageModel; onModelChange: React.Dispatch>; size: SizePreset; streamMode: ImageStreamMode; onStreamModeChange: React.Dispatch>; allowStreamingBatch: boolean; enableParallelBatch: boolean; onEnableParallelBatchChange: React.Dispatch>; parallelBatchTargetCount: number; allowResponsesImageBackend: boolean; upstreamProfileMixed?: boolean; hasDefaultResponsesModel: boolean; imageBackend: ImageUpstreamFormBackend; onImageBackendChange: React.Dispatch>; streamingStrategy: ImageUpstreamFormStreamingStrategy; defaultStreamingStrategy: ImageStreamingStrategy; onStreamingStrategyChange: React.Dispatch>; responsesModel: string; onResponsesModelChange: React.Dispatch>; disabled?: boolean; defaultMode?: 'easy' | 'pro'; defaultProTab?: 'output' | 'model' | 'stream' | 'route'; }; type DockModeButtonProps = { active: boolean; children: React.ReactNode; onClick: () => void; }; function DockModeButton({ active, children, onClick }: DockModeButtonProps) { return ( ); } export function WorkbenchProDock({ defaultMode = 'easy', defaultProTab = 'output', ...props }: WorkbenchProDockProps) { const { t } = useI18n(); const [dockMode, setDockMode] = React.useState<'easy' | 'pro'>(defaultMode); const isProMode = dockMode === 'pro'; return (
setDockMode('easy')}> {t('ux.easyMode')} setDockMode('pro')}> {t('ux.professionalMode')}
{isProMode ? ( ) : ( )}
); }