import { useState } from 'react'; import { useRecoilValue } from 'recoil'; import { CodeInProgress } from './Parts/CodeProgress'; import { useProgress, useLocalize } from '~/hooks'; import ProgressText from './ProgressText'; import FinishedIcon from './FinishedIcon'; import MarkdownLite from './MarkdownLite'; import store from '~/store'; export default function CodeAnalyze({ initialProgress = 0.1, code, outputs = [], isSubmitting, }: { initialProgress: number; code: string; outputs: Record[]; isSubmitting: boolean; }) { const localize = useLocalize(); const progress = useProgress(initialProgress); const showAnalysisCode = useRecoilValue(store.showCode); const [showCode, setShowCode] = useState(showAnalysisCode); const radius = 56.08695652173913; const circumference = 2 * Math.PI * radius; const offset = circumference - progress * circumference; const logs = outputs.reduce((acc, output) => { if (output['logs']) { return acc + output['logs'] + '\n'; } return acc; }, ''); return ( <>
{progress < 1 ? ( ) : ( )}
setShowCode((prev) => !prev)} inProgressText="Analyzing" finishedText="Finished analyzing" hasInput={!!code.length} />
{showCode && (
{logs && (
{localize('com_ui_result')}
{logs}
)}
)} ); }