Browse Source

[Beta] Fix editor re-renders on lint error (#4699)

main
dan 3 years ago
committed by GitHub
parent
commit
ee754727e2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      beta/src/components/MDX/Sandpack/Preview.tsx

17
beta/src/components/MDX/Sandpack/Preview.tsx

@ -61,16 +61,23 @@ export function Preview({
rawError = null;
}
if (lintErrors.length > 0) {
if (rawError == null || rawError.title === 'Runtime Exception') {
// When there's a lint error, show it -- even over a runtime error.
// (However, when there's a build error, we keep showing the build one.)
// Memoized because it's fed to debouncing.
const firstLintError = React.useMemo(() => {
if (lintErrors.length === 0) {
return null;
} else {
const {line, column, message} = lintErrors[0];
rawError = {
return {
title: 'Lint Error',
message: `${line}:${column} - ${message}`,
};
}
}, [lintErrors]);
if (rawError == null || rawError.title === 'Runtime Exception') {
if (firstLintError !== null) {
rawError = firstLintError;
}
}
// It changes too fast, causing flicker.

Loading…
Cancel
Save