MCPcopy
hub / github.com/facebook/react / Editor

Function Editor

compiler/apps/playground/components/Editor/EditorImpl.tsx:319–356  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

317}
318
319export default function Editor(): JSX.Element {
320 const store = useStore();
321 const deferredStore = useDeferredValue(store);
322 const [compilerOutput, language, appliedOptions] = useMemo(
323 () => compile(deferredStore.source, 'compiler', deferredStore.config),
324 [deferredStore.source, deferredStore.config],
325 );
326 const [linterOutput] = useMemo(
327 () => compile(deferredStore.source, 'linter', deferredStore.config),
328 [deferredStore.source, deferredStore.config],
329 );
330
331 let mergedOutput: CompilerOutput;
332 let errors: Array<CompilerErrorDetail | CompilerDiagnostic>;
333 if (compilerOutput.kind === 'ok') {
334 errors = linterOutput.kind === 'ok' ? [] : linterOutput.error.details;
335 mergedOutput = {
336 ...compilerOutput,
337 errors,
338 };
339 } else {
340 mergedOutput = compilerOutput;
341 errors = compilerOutput.error.details;
342 }
343 return (
344 <>
345 <div className="relative flex top-14">
346 <div className="flex-shrink-0">
347 <ConfigEditor appliedOptions={appliedOptions} />
348 </div>
349 <div className="flex flex-1 min-w-0">
350 <Input language={language} errors={errors} />
351 <Output store={deferredStore} compilerOutput={mergedOutput} />
352 </div>
353 </div>
354 </>
355 );
356}

Callers

nothing calls this directly

Calls 4

useDeferredValueFunction · 0.90
useMemoFunction · 0.90
useStoreFunction · 0.85
compileFunction · 0.70

Tested by

no test coverage detected