diff --git a/src/components/Layout/Layout.tsx b/src/components/Layout/Layout.tsx index 098e09193..0117c302e 100644 --- a/src/components/Layout/Layout.tsx +++ b/src/components/Layout/Layout.tsx @@ -1,6 +1,7 @@ import React, { FC, ReactNode, useContext, useEffect, useRef, useState } from 'react'; import { Helmet } from 'react-helmet'; import { useTranslation } from 'react-i18next'; +import { useHistory } from 'react-router'; import useSearchQueryUpdater from '../../hooks/useSearchQueryUpdater'; import { UIStore } from '../../stores/UIStore'; @@ -11,7 +12,7 @@ import Sidebar from '../Sidebar/Sidebar'; import DynamicBlur from '../DynamicBlur/DynamicBlur'; import { ConfigContext } from '../../providers/ConfigProvider'; import MenuButton from '../../components/MenuButton/MenuButton'; -import { AccountModalView, AccountStore } from '../../stores/AccountStore'; +import { addQueryParam } from '../../utils/history'; import styles from './Layout.module.scss'; @@ -20,6 +21,7 @@ type LayoutProps = { }; const Layout: FC = ({ children }) => { + const history = useHistory(); const { t } = useTranslation('common'); const { menu, assets, options, siteName, description, footerText, searchPlaylist } = useContext(ConfigContext); const blurImage = UIStore.useState((s) => s.blurImage); @@ -54,10 +56,7 @@ const Layout: FC = ({ children }) => { }; const loginButtonClickHandler = () => { - AccountStore.update(s => { - s.modal.open = true; - s.modal.view = AccountModalView.LOGIN; - }) + addQueryParam(history, 'u', 'login'); }; return ( diff --git a/src/containers/AccountModal/AccountModal.test.tsx b/src/containers/AccountModal/AccountModal.test.tsx index b3cb75842..6e00a975d 100644 --- a/src/containers/AccountModal/AccountModal.test.tsx +++ b/src/containers/AccountModal/AccountModal.test.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { render } from '@testing-library/react'; + +import { render } from '../../testUtils'; import AccountModal from './AccountModal'; diff --git a/src/containers/AccountModal/AccountModal.tsx b/src/containers/AccountModal/AccountModal.tsx index fe1aad02f..b205f0093 100644 --- a/src/containers/AccountModal/AccountModal.tsx +++ b/src/containers/AccountModal/AccountModal.tsx @@ -1,25 +1,29 @@ import React, { useContext } from 'react'; +import { useHistory } from 'react-router'; -import { AccountStore } from '../../stores/AccountStore'; import Button from '../../components/Button/Button'; import { ConfigContext } from '../../providers/ConfigProvider'; import Dialog from '../../components/Dialog/Dialog'; +import useQueryParam from '../../hooks/useQueryParam'; +import { removeQueryParam } from '../../utils/history'; import styles from './AccountModal.module.scss'; const AccountModal = () => { + const history = useHistory(); + const view = useQueryParam('u'); + const { assets: { banner }, } = useContext(ConfigContext); - const { open } = AccountStore.useState((s) => s.modal); - const closeHandler = () => - AccountStore.update((s) => { - s.modal.open = false; - }); + + const closeHandler = () => { + removeQueryParam(history, 'u'); + } return ( - -
{banner ? undefined} alt="" /> : null}
+ +
{banner ? : null}

Login!

form