fix(Intro): parse correct query params

This commit is contained in:
Botzy 2025-04-29 19:15:48 +03:00
parent 0e75a6ceed
commit 2fbddee9ae

View file

@ -2,7 +2,7 @@
const React = require('react'); const React = require('react');
const { useTranslation } = require('react-i18next'); const { useTranslation } = require('react-i18next');
const PropTypes = require('prop-types'); const { useSearchParams, useNavigate } = require('react-router-dom');
const classnames = require('classnames'); const classnames = require('classnames');
const { default: Icon } = require('@stremio/stremio-icons/react'); const { default: Icon } = require('@stremio/stremio-icons/react');
const { Modal } = require('stremio-router'); const { Modal } = require('stremio-router');
@ -20,7 +20,9 @@ const styles = require('./styles');
const SIGNUP_FORM = 'signup'; const SIGNUP_FORM = 'signup';
const LOGIN_FORM = 'login'; const LOGIN_FORM = 'login';
const Intro = ({ queryParams }) => { const Intro = () => {
const [queryParams, setQueryParams] = useSearchParams();
const navigate = useNavigate();
const { core } = useServices(); const { core } = useServices();
const { t } = useTranslation(); const { t } = useTranslation();
const routeFocused = useRouteFocused(); const routeFocused = useRouteFocused();
@ -164,7 +166,7 @@ const Intro = ({ queryParams }) => {
dispatch({ type: 'error', error: 'You must accept the Terms of Service' }); dispatch({ type: 'error', error: 'You must accept the Terms of Service' });
return; return;
} }
window.location = '#/'; navigate('/');
}, [state.termsAccepted]); }, [state.termsAccepted]);
const signup = React.useCallback(() => { const signup = React.useCallback(() => {
if (typeof state.email !== 'string' || state.email.length === 0 || !emailRef.current.validity.valid) { if (typeof state.email !== 'string' || state.email.length === 0 || !emailRef.current.validity.valid) {
@ -251,7 +253,7 @@ const Intro = ({ queryParams }) => {
}, []); }, []);
const switchFormOnClick = React.useCallback(() => { const switchFormOnClick = React.useCallback(() => {
const queryParams = new URLSearchParams([['form', state.form === SIGNUP_FORM ? LOGIN_FORM : SIGNUP_FORM]]); const queryParams = new URLSearchParams([['form', state.form === SIGNUP_FORM ? LOGIN_FORM : SIGNUP_FORM]]);
window.location = `#/intro?${queryParams.toString()}`; setQueryParams(queryParams);
}, [state.form]); }, [state.form]);
React.useEffect(() => { React.useEffect(() => {
if ([LOGIN_FORM, SIGNUP_FORM].includes(queryParams.get('form'))) { if ([LOGIN_FORM, SIGNUP_FORM].includes(queryParams.get('form'))) {
@ -274,7 +276,7 @@ const Intro = ({ queryParams }) => {
case 'UserAuthenticated': { case 'UserAuthenticated': {
closeLoaderModal(); closeLoaderModal();
if (routeFocused) { if (routeFocused) {
window.location = '#/'; navigate('/');
} }
break; break;
} }
@ -435,8 +437,4 @@ const Intro = ({ queryParams }) => {
); );
}; };
Intro.propTypes = {
queryParams: PropTypes.instanceOf(URLSearchParams)
};
module.exports = Intro; module.exports = Intro;