From b1596b49eb05de7e37ebeca5832cda3cf8cae6ac Mon Sep 17 00:00:00 2001 From: vincenzoarcidiacono Date: Wed, 25 Sep 2024 09:03:27 +0200 Subject: [PATCH] fix(form): Correct locales data fetching. --- .../react/src/core/components/Static/index.js | 10 +- .../react/src/core/components/Stripe/index.js | 2 +- .../src/core/components/Stripe/portal.js | 2 +- .../src/themes/antd/components/App/index.js | 102 +++++++++--------- schedula/utils/form/server/locale/__init__.py | 2 + 5 files changed, 60 insertions(+), 58 deletions(-) diff --git a/schedula/utils/form/react/src/core/components/Static/index.js b/schedula/utils/form/react/src/core/components/Static/index.js index b2c9d2205..3db59e4da 100644 --- a/schedula/utils/form/react/src/core/components/Static/index.js +++ b/schedula/utils/form/react/src/core/components/Static/index.js @@ -3,10 +3,14 @@ import DOMPurify from 'dompurify'; export default function Static({children, render, sanitize, url, ...props}) { const [html, setHTML] = useState(null) - + const {formContext} = render + const {form} = formContext useEffect(() => { if (url) { - fetch(url).then(r => r.text()).then(text => { + form.postData({ + url, + method: 'GET' + }, ({data: text}) => { if (sanitize) text = DOMPurify.sanitize(text, sanitize) setHTML(text) @@ -17,7 +21,7 @@ export default function Static({children, render, sanitize, url, ...props}) { text = DOMPurify.sanitize(text, sanitize) setHTML(text) } - }, [url, children, sanitize]) + }, [url, children, sanitize, form]) return html ?
: null diff --git a/schedula/utils/form/react/src/core/components/Stripe/index.js b/schedula/utils/form/react/src/core/components/Stripe/index.js index 583ca5f8f..60effe060 100644 --- a/schedula/utils/form/react/src/core/components/Stripe/index.js +++ b/schedula/utils/form/react/src/core/components/Stripe/index.js @@ -45,7 +45,7 @@ export default function Stripe( setClientSecret(clientSecret) }) } - }, []) + }) const onComplete = useCallback(() => { form.postData({ url: `${urlCreateCheckoutStatus}/${sessionId}`, diff --git a/schedula/utils/form/react/src/core/components/Stripe/portal.js b/schedula/utils/form/react/src/core/components/Stripe/portal.js index ae624a525..6c1391c02 100644 --- a/schedula/utils/form/react/src/core/components/Stripe/portal.js +++ b/schedula/utils/form/react/src/core/components/Stripe/portal.js @@ -96,7 +96,7 @@ const StripePortal = forwardRef(( } else if (popup) { popup.close() } - }, [open, urlPortalSession, form, language, user_id]) + }, [open, urlPortalSession, form, language, user_id, height, width, top, bottom, left, right]) useEffect(() => { if (popup) { const bringToFront = setInterval(() => { diff --git a/schedula/utils/form/react/src/themes/antd/components/App/index.js b/schedula/utils/form/react/src/themes/antd/components/App/index.js index 7dcd7781f..4699a694c 100644 --- a/schedula/utils/form/react/src/themes/antd/components/App/index.js +++ b/schedula/utils/form/react/src/themes/antd/components/App/index.js @@ -190,19 +190,15 @@ const App = ( const [languageOptions, setLanguageOptions] = useState(languages !== true ? languages : null); useEffect(() => { if (languages === true) - fetch('/locales', { - headers: { - 'Content-Type': 'application/json', - 'Content-Encoding': 'gzip', - 'Accept-Encoding': 'gzip' - } - }).then(v => v.json()).then((v) => { - setLanguageOptions(v) - }).catch((error) => { + form.postData({ + url: '/locales', + method: 'GET' + }, ({data}) => { + setLanguageOptions(data) + }, () => { setLanguageOptions(null) - form.props.notify({message: error}) }) - }, [languages, form.props]); + }, [languages, form]); const {errors, debugUrl} = form.state const [openErrors, setOpenErrors] = useState(false); const [openDebug, setOpenDebug] = useState(!!debugUrl); @@ -230,51 +226,51 @@ const App = ( padding: 0, display: "flex", }}> -
{logo ? createLayoutElement({ - key: 'logo', layout: logo, render, isArray: false - }) : null}
- {_items.length ? { - setSelectedKeys([key]) - }} - {...props} - /> :
} - {currentDataId || urlContact || languages || userProps ? - - {currentDataId ? - # {currentDataId.id} - {currentDataId.name} - : null} - {urlContact ? {logo ? createLayoutElement({ + key: 'logo', layout: logo, render, isArray: false + }) : null}
+ {_items.length ? { + setSelectedKeys([key]) + }} + {...props} + /> :
} + {currentDataId || urlContact || languages || userProps ? + + {currentDataId ? + # {currentDataId.id} - {currentDataId.name} + : null} + {urlContact ? : null} + {languageOptions ? : null} + {userProps ? + : null} - {languageOptions ? : null} - {userProps ? - : null} - : null} + {...userProps}/> : null} + : null} : null}