From 23541c06ce382c77b9edf45ddb96b4edad198739 Mon Sep 17 00:00:00 2001 From: Igor Lobanov Date: Mon, 31 Oct 2022 13:36:41 +0100 Subject: [PATCH] Revert "oauth-confirm moved" This reverts commit 5700968cafc408be2dee091e47322f0e6ca77ab7. --- src/components/Nav/AuthModal/ConfirmOAuth.tsx | 38 ------------------- ...l.module.scss => EmailConfirm.module.scss} | 0 .../{ConfirmEmail.tsx => EmailConfirm.tsx} | 4 +- src/components/Nav/AuthModal/index.tsx | 27 ++++++++----- src/components/Nav/AuthModal/types.ts | 2 +- src/components/Nav/Confirmed.scss | 6 +++ src/components/Nav/Confirmed.tsx | 18 +++++++++ src/components/Nav/Popup.tsx | 4 +- src/graphql/types.gen.ts | 2 +- src/locales/ru.json | 1 - src/pages/confirm/[token].astro | 10 ++++- src/pages/confirm/index.astro | 10 +++++ src/utils/config.ts | 4 +- 13 files changed, 68 insertions(+), 58 deletions(-) delete mode 100644 src/components/Nav/AuthModal/ConfirmOAuth.tsx rename src/components/Nav/AuthModal/{ConfirmEmail.module.scss => EmailConfirm.module.scss} (100%) rename src/components/Nav/AuthModal/{ConfirmEmail.tsx => EmailConfirm.tsx} (92%) create mode 100644 src/components/Nav/Confirmed.scss create mode 100644 src/components/Nav/Confirmed.tsx create mode 100644 src/pages/confirm/index.astro diff --git a/src/components/Nav/AuthModal/ConfirmOAuth.tsx b/src/components/Nav/AuthModal/ConfirmOAuth.tsx deleted file mode 100644 index b46618a1..00000000 --- a/src/components/Nav/AuthModal/ConfirmOAuth.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import styles from './ConfirmEmail.module.scss' -import authModalStyles from './AuthModal.module.scss' -import { clsx } from 'clsx' -import { t } from '../../../utils/intl' -import { hideModal } from '../../../stores/ui' -import { onMount } from 'solid-js' -import { useRouter } from '../../../stores/router' - -type ConfirmOAuthSearchParams = { - token: string -} - -export const ConfirmOAuth = () => { - const { searchParams } = useRouter() - - onMount(async () => { - console.debug('[confirm-oauth] params', searchParams()) - const token = searchParams().token - localStorage.setItem('token', token) - window.addEventListener('mousemove', () => window.close()) - window.addEventListener('keydown', () => window.close()) - window.addEventListener('click', () => window.close()) - }) - - return ( -
-
{t('Hooray! Welcome!')}
-
- {t("You've confirmed your account")} { /* TODO: get '%username%' */ } -
-
- -
-
- ) -} diff --git a/src/components/Nav/AuthModal/ConfirmEmail.module.scss b/src/components/Nav/AuthModal/EmailConfirm.module.scss similarity index 100% rename from src/components/Nav/AuthModal/ConfirmEmail.module.scss rename to src/components/Nav/AuthModal/EmailConfirm.module.scss diff --git a/src/components/Nav/AuthModal/ConfirmEmail.tsx b/src/components/Nav/AuthModal/EmailConfirm.tsx similarity index 92% rename from src/components/Nav/AuthModal/ConfirmEmail.tsx rename to src/components/Nav/AuthModal/EmailConfirm.tsx index 41922f01..6588285e 100644 --- a/src/components/Nav/AuthModal/ConfirmEmail.tsx +++ b/src/components/Nav/AuthModal/EmailConfirm.tsx @@ -1,4 +1,4 @@ -import styles from './ConfirmEmail.module.scss' +import styles from './EmailConfirm.module.scss' import authModalStyles from './AuthModal.module.scss' import { clsx } from 'clsx' import { t } from '../../../utils/intl' @@ -11,7 +11,7 @@ type ConfirmEmailSearchParams = { token: string } -export const ConfirmEmail = () => { +export const EmailConfirm = () => { const confirmedEmail = 'test@test.com' const { searchParams } = useRouter() diff --git a/src/components/Nav/AuthModal/index.tsx b/src/components/Nav/AuthModal/index.tsx index 686ffecd..91480993 100644 --- a/src/components/Nav/AuthModal/index.tsx +++ b/src/components/Nav/AuthModal/index.tsx @@ -1,5 +1,5 @@ import { Show } from 'solid-js/web' -import { createEffect, createMemo } from 'solid-js' +import { createEffect, createMemo, onMount } from 'solid-js' import { t } from '../../../utils/intl' import { hideModal } from '../../../stores/ui' import { handleClientRouteLinkClick, useRouter } from '../../../stores/router' @@ -8,15 +8,25 @@ import styles from './AuthModal.module.scss' import { LoginForm } from './LoginForm' import { RegisterForm } from './RegisterForm' import { ForgotPasswordForm } from './ForgotPasswordForm' -import { ConfirmEmail } from './ConfirmEmail' +import { EmailConfirm } from './EmailConfirm' import type { AuthModalMode, AuthModalSearchParams } from './types' -import { ConfirmOAuth } from './ConfirmOAuth' +const AUTH_MODAL_MODES: Record = { + login: 'login', + register: 'register', + 'forgot-password': 'forgot-password', + // eslint-disable-next-line sonarjs/no-duplicate-string + 'confirm-email': 'confirm-email' +} export const AuthModal = () => { let rootRef: HTMLDivElement + const { searchParams } = useRouter() - const mode = createMemo(() => searchParams().mode || 'login') + + const mode = createMemo(() => { + return AUTH_MODAL_MODES[searchParams().mode] || 'login' + }) createEffect((oldMode) => { if (oldMode !== mode()) { @@ -28,12 +38,12 @@ export const AuthModal = () => {

{t('Discours')}

{t(`Join the global community of authors!`)}

@@ -70,10 +80,7 @@ export const AuthModal = () => { - - - - +
diff --git a/src/components/Nav/AuthModal/types.ts b/src/components/Nav/AuthModal/types.ts index 4bccde25..e7aeed0e 100644 --- a/src/components/Nav/AuthModal/types.ts +++ b/src/components/Nav/AuthModal/types.ts @@ -1,4 +1,4 @@ -export type AuthModalMode = 'login' | 'register' | 'confirm-email' | 'confirm-oauth' | 'forgot-password' +export type AuthModalMode = 'login' | 'register' | 'confirm-email' | 'forgot-password' export type AuthModalSearchParams = { mode: AuthModalMode diff --git a/src/components/Nav/Confirmed.scss b/src/components/Nav/Confirmed.scss new file mode 100644 index 00000000..4307f056 --- /dev/null +++ b/src/components/Nav/Confirmed.scss @@ -0,0 +1,6 @@ +.center { + display: flex; + justify-content: center; + align-items: center; + height: 420px; +} diff --git a/src/components/Nav/Confirmed.tsx b/src/components/Nav/Confirmed.tsx new file mode 100644 index 00000000..f870c83d --- /dev/null +++ b/src/components/Nav/Confirmed.tsx @@ -0,0 +1,18 @@ +import './Confirmed.scss' +import { onMount } from 'solid-js' +import { t } from '../../utils/intl' + +export const Confirmed = (props: { token?: string }) => { + onMount(() => { + const token = props.token ?? document.cookie.split(';').at(0).replace('token=', '') + window.addEventListener('mousemove', () => window.close()) + window.addEventListener('keydown', () => window.close()) + window.addEventListener('click', () => window.close()) + localStorage.setItem('token', token) + }) + return ( + <> +
{t('You was successfully authorized')}
+ + ) +} diff --git a/src/components/Nav/Popup.tsx b/src/components/Nav/Popup.tsx index 5afc9237..40a25429 100644 --- a/src/components/Nav/Popup.tsx +++ b/src/components/Nav/Popup.tsx @@ -1,11 +1,11 @@ -import { createEffect, createSignal, JSX, onMount, Show } from 'solid-js' +import { createEffect, createSignal, onMount, Show } from 'solid-js' import style from './Popup.module.scss' import { hideModal, useModalStore } from '../../stores/ui' import { clsx } from 'clsx' interface PopupProps { name: string - children: JSX.Element + children: any class?: string } diff --git a/src/graphql/types.gen.ts b/src/graphql/types.gen.ts index 0a520088..5b233587 100644 --- a/src/graphql/types.gen.ts +++ b/src/graphql/types.gen.ts @@ -171,7 +171,7 @@ export type Mutation = { } export type MutationConfirmEmailArgs = { - token: Scalars['String'] + code: Scalars['String'] } export type MutationCreateChatArgs = { diff --git a/src/locales/ru.json b/src/locales/ru.json index 7fea97ff..2f7a8b1d 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -157,7 +157,6 @@ "Restore password": "Восстановить пароль", "Hooray! Welcome!": "Ура! Добро пожаловать!", "You've confirmed email": "Вы подтвердили почту", - "You've confirmed your account": "Вы подтвердили свою учётную запись", "This email is already taken. If it's you": "Такой email уже зарегистрирован. Если это вы", "enter": "войдите" } diff --git a/src/pages/confirm/[token].astro b/src/pages/confirm/[token].astro index cd8ff21f..89528424 100644 --- a/src/pages/confirm/[token].astro +++ b/src/pages/confirm/[token].astro @@ -1,4 +1,12 @@ --- +import { Confirmed } from '../../components/Nav/Confirmed' +import { t } from '../../utils/intl' + const token = Astro.params.token?.toString() || '' -return Astro.redirect('/?modal=confirm-oauth&token=' + token) --- + +{t('Discours')} + + + + diff --git a/src/pages/confirm/index.astro b/src/pages/confirm/index.astro new file mode 100644 index 00000000..1edb4589 --- /dev/null +++ b/src/pages/confirm/index.astro @@ -0,0 +1,10 @@ +--- +import { t } from '../../utils/intl' +import { Confirmed } from '../../components/Nav/Confirmed' +--- + +{t('Discours')} + + + + diff --git a/src/utils/config.ts b/src/utils/config.ts index 748d491e..75f03f39 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -1,4 +1,4 @@ export const isDev = import.meta.env.MODE === 'development' -// export const apiBaseUrl = 'https://newapi.discours.io' -export const apiBaseUrl = 'http://localhost:8000' +export const apiBaseUrl = 'https://newapi.discours.io' +// export const apiBaseUrl = 'http://localhost:8000'