import { useState } from 'react'; import { useRecoilValue } from 'recoil'; import ProgressCircle from './ProgressCircle'; import ProgressText from './ProgressText'; import FinishedIcon from './FinishedIcon'; import MarkdownLite from './MarkdownLite'; import { useProgress } from '~/hooks'; import store from '~/store'; export default function CodeAnalyze({ initialProgress = 0.1, code, outputs = [], }: { initialProgress: number; code: string; outputs: Record[]; }) { const showCodeDefault = useRecoilValue(store.showCode); const [showCode, setShowCode] = useState(showCodeDefault); const progress = useProgress(initialProgress); 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 && (
Result
{logs}
)}
)} ); } const CodeInProgress = ({ offset, circumference, radius, }: { offset: number; circumference: number; radius: number; }) => { return (
); };