X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fpages%2FAosGenerate.js;fp=resources%2Fjs%2Fcomponents%2Fpages%2FAosGenerate.js;h=0c27b06377cf38660bee402a632eaeaa4dd413f5;hb=a5e53546a5960f54fb45e06767f89e9dfeef6a47;hp=0000000000000000000000000000000000000000;hpb=80c51af075a5a86641cf47ba5024994a1310e9d6;p=alttp.git diff --git a/resources/js/components/pages/AosGenerate.js b/resources/js/components/pages/AosGenerate.js new file mode 100644 index 0000000..0c27b06 --- /dev/null +++ b/resources/js/components/pages/AosGenerate.js @@ -0,0 +1,56 @@ +import axios from 'axios'; +import React, { useCallback, useEffect, useState } from 'react'; + +import Generate from '../aos-generate/Generate'; +import ErrorBoundary from '../common/ErrorBoundary'; +import ErrorMessage from '../common/ErrorMessage'; +import Loading from '../common/Loading'; +import i18n from '../../i18n'; + +const AosGenerate = () => { + const [error, setError] = useState(null); + const [loading, setLoading] = useState(true); + const [presets, setPresets] = useState([]); + + const loadPresets = useCallback(ctrl => { + axios + .get('/api/aos-presets', { signal: ctrl.signal }) + .then(response => { + setError(null); + setLoading(false); + setPresets(response.data); + }) + .catch(error => { + setError(error); + setLoading(false); + setPresets([]); + }); + }, []); + + useEffect(() => { + setLoading(true); + const ctrl = new AbortController(); + loadPresets(ctrl); + return () => { + ctrl.abort(); + }; + }, []); + + useEffect(() => { + window.document.title = i18n.t('aosGenerate.heading'); + }, [i18n.language]); + + if (loading) { + return ; + } + + if (error) { + return ; + } + + return + + ; +}; + +export default AosGenerate;