From b1b3f8b435b641c1425beac24c26a39cea15aef5 Mon Sep 17 00:00:00 2001 From: Ilya Y <75578537+ilya-bkv@users.noreply.github.com> Date: Tue, 27 Feb 2024 17:42:54 +0300 Subject: [PATCH] auth modals fix logic (#420) auth modals fix logic --- src/components/App.tsx | 4 ---- src/components/AuthorsList/AuthorsList.tsx | 11 ++--------- src/components/Nav/AuthModal/RegisterForm.tsx | 4 +--- src/components/Nav/AuthModal/SendResetLinkForm.tsx | 1 - src/context/session.tsx | 10 +++++++--- src/pages/types.ts | 1 + 6 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/components/App.tsx b/src/components/App.tsx index b024f194..c595ec15 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -94,10 +94,6 @@ export const App = (props: Props) => { const is404 = createMemo(() => props.is404) createEffect(() => { - if (!searchParams().m) { - hideModal() - } - const modal = MODALS[searchParams().m] if (modal) { showModal(modal) diff --git a/src/components/AuthorsList/AuthorsList.tsx b/src/components/AuthorsList/AuthorsList.tsx index 651792e6..ccde9a92 100644 --- a/src/components/AuthorsList/AuthorsList.tsx +++ b/src/components/AuthorsList/AuthorsList.tsx @@ -19,13 +19,6 @@ type Props = { const PAGE_SIZE = 20 -// TODO: проверить нет ли дубликатов в базе данных, если нет - то не использовать addUniqueAuthors() -const addUniqueAuthors = (prevAuthors: Author[], newAuthors: Author[]) => { - const uniqueNewAuthors = newAuthors.filter( - (newAuthor) => !prevAuthors.some((prevAuthor) => prevAuthor.id === newAuthor.id), - ) - return [...prevAuthors, ...uniqueNewAuthors] -} export const AuthorsList = (props: Props) => { const { t } = useLocalize() const { isOwnerSubscribed } = useFollowing() @@ -44,9 +37,9 @@ export const AuthorsList = (props: Props) => { }) if (queryType === 'shouts') { - setAuthorsByShouts((prev) => addUniqueAuthors(prev, result)) + setAuthorsByShouts((prev) => [...prev, ...result]) } else { - setAuthorsByFollowers((prev) => addUniqueAuthors(prev, result)) + setAuthorsByFollowers((prev) => [...prev, ...result]) } setLoading(false) } diff --git a/src/components/Nav/AuthModal/RegisterForm.tsx b/src/components/Nav/AuthModal/RegisterForm.tsx index fd3b2467..ec78b44e 100644 --- a/src/components/Nav/AuthModal/RegisterForm.tsx +++ b/src/components/Nav/AuthModal/RegisterForm.tsx @@ -53,7 +53,6 @@ export const RegisterForm = () => { const handleSubmit = async (event: Event) => { event.preventDefault() - if (passwordError()) { setValidationErrors((errors) => ({ ...errors, password: passwordError() })) } else { @@ -102,7 +101,7 @@ export const RegisterForm = () => { redirect_uri: window.location.origin, } const { errors } = await signUp(opts) - if (errors) return + if (errors.length > 0) return setIsSuccess(true) } catch (error) { console.error(error) @@ -134,7 +133,6 @@ export const RegisterForm = () => { ), })) break - case 'verified': setValidationErrors((prev) => ({ email: ( diff --git a/src/components/Nav/AuthModal/SendResetLinkForm.tsx b/src/components/Nav/AuthModal/SendResetLinkForm.tsx index b1880d9d..f429a256 100644 --- a/src/components/Nav/AuthModal/SendResetLinkForm.tsx +++ b/src/components/Nav/AuthModal/SendResetLinkForm.tsx @@ -96,7 +96,6 @@ export const SendResetLinkForm = () => { placeholder={t('Email')} onInput={(event) => handleEmailInput(event.currentTarget.value)} /> -
diff --git a/src/context/session.tsx b/src/context/session.tsx index f1c3ecc1..e6086097 100644 --- a/src/context/session.tsx +++ b/src/context/session.tsx @@ -122,7 +122,13 @@ export const SessionProvider = (props: { m: 'auth', access_token, }) - else if (token) changeSearchParams({ mode: 'change-password', modal: 'auth', token }) + else if (token) { + changeSearchParams({ + mode: 'change-password', + m: 'auth', + token, + }) + } }) // load @@ -207,7 +213,6 @@ export const SessionProvider = (props: { if (session()) { const token = session()?.access_token if (token) { - // console.log('[context.session] token observer got token', token) if (!inboxClient.private) { apiClient.connect(token) notifierClient.connect(token) @@ -333,7 +338,6 @@ export const SessionProvider = (props: { const response = await authorizer().graphqlQuery({ query: `query { is_registered(email: "${email}") { message }}`, }) - // console.log(response) return response?.data?.is_registered?.message } catch (error) { console.warn(error) diff --git a/src/pages/types.ts b/src/pages/types.ts index 05fd3f61..96701c6c 100644 --- a/src/pages/types.ts +++ b/src/pages/types.ts @@ -25,6 +25,7 @@ export type PageProps = { export type RootSearchParams = { m: string // modal lang: string + token: string } export type LayoutType = 'article' | 'audio' | 'video' | 'image' | 'literature'