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)} />}
+
>
}