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;