diff --git a/src/app/components/ErrorPanel.tsx b/src/app/components/ErrorPanel.tsx index 64fd7c38..91a0d53d 100644 --- a/src/app/components/ErrorPanel.tsx +++ b/src/app/components/ErrorPanel.tsx @@ -8,6 +8,6 @@ export function ErrorPanel({ error, onDismiss }: ErrorPanelProps) { return
{onDismiss &&
{Octicon.x}
}

{error}

-

You can report this as a bug on GitHub

+

If you think this is a bug, you can report it on GitHub

} diff --git a/src/app/pages/Generator.tsx b/src/app/pages/Generator.tsx index 6ae8d124..264f8c57 100644 --- a/src/app/pages/Generator.tsx +++ b/src/app/pages/Generator.tsx @@ -19,13 +19,7 @@ type GeneratorProps = { } export function Generator({ lang, changeTitle, version, onChangeVersion }: GeneratorProps) { const loc = locale.bind(null, lang) - const [errors, setErrors] = useState([]) - const addError = (error: string) => { - setErrors([...errors, error]) - } - const dismissError = (error: string) => { - setErrors(errors.filter(e => e !== error)) - } + const [error, setError] = useState(null) const [errorBoundary, errorRetry] = useErrorBoundary() if (errorBoundary) { return
@@ -36,12 +30,20 @@ export function Generator({ lang, changeTitle, version, onChangeVersion }: Gener return
} + useEffect(() => { + setError(null) + }, [gen.id, version]) + const allowedVersions = config.versions .filter(v => checkVersion(v.id, gen.minVersion)) .map(v => v.id as VersionId) changeTitle(loc('title.generator', loc(gen.id)), allowedVersions) + if (!checkVersion(version, gen.minVersion)) { + setError(`The minimum version for this generator is ${gen.minVersion}`) + } + const [model, setModel] = useState(null) const [blockStates, setBlockStates] = useState(null) useEffect(() => { @@ -50,7 +52,7 @@ export function Generator({ lang, changeTitle, version, onChangeVersion }: Gener .then(b => setBlockStates(b)) getModel(version, gen.id) .then(m => setModel(m)) - .catch(e => { console.error(e); addError(e.message) }) + .catch(e => { console.error(e); setError(e.message) }) }, [version, gen.id]) const reset = () => { @@ -97,7 +99,7 @@ export function Generator({ lang, changeTitle, version, onChangeVersion }: Gener setPresetResults(presets) } }) - .catch(e => { console.error(e); addError(e.message) }) + .catch(e => { console.error(e); setError(e.message) }) }, [version, gen.id, presetFilter]) const loadPreset = (id: string) => { @@ -168,8 +170,8 @@ export function Generator({ lang, changeTitle, version, onChangeVersion }: Gener - {errors.map(e => dismissError(e)} />)} - + {error && setError(null)} />} +
- +
- +
}