'use client'; import type { Dispatch } from 'react'; import type { AppState, AppAction } from '@/types'; import { useCodeExecution } from '@/hooks/useCodeExecution'; import CodeEditor from './CodeEditor'; import EditorToolbar from './EditorToolbar'; import OutputPanel from './OutputPanel'; import HtmlPreview from './HtmlPreview'; interface Props { state: AppState; dispatch: Dispatch; providerLabel: string; onSubmit: () => void; onReset: () => void; onOpenSettings: () => void; savedIndicator: boolean; authUser: { id: string; email: string } | null; onShowAuth: () => void; onLogout: () => void; } export default function EditorPane({ state, dispatch, providerLabel, onSubmit, onReset, onOpenSettings, savedIndicator, authUser, onShowAuth, onLogout }: Props) { const { execute } = useCodeExecution(dispatch); const language = state.topic!.language; function handleRun() { execute(language, state.code); } return (
dispatch({ type: 'SET_RESPONSE_MODE', payload: { hintMode: !state.responseMode.hintMode } }) } onToggleStrict={() => dispatch({ type: 'SET_RESPONSE_MODE', payload: { strict: !state.responseMode.strict } }) } />
dispatch({ type: 'CODE_CHANGE', payload: val })} height="100%" />
{language === 'html' && }
); }