From 91f3e04dbb6b31cd8d7aae68315fc634f5465f23 Mon Sep 17 00:00:00 2001 From: Ramon Candel Segura Date: Fri, 16 Jan 2026 10:38:06 +0100 Subject: [PATCH 1/8] feat:redesign mobile authentication screens with responsive styles and gradient backgrounds --- src/index.scss | 17 ++++++++++ src/views/Login/SignInView.tsx | 19 +++--------- src/views/Login/components/LogIn.tsx | 26 ++++++++++++---- src/views/Signup/SignupView.tsx | 14 +++------ src/views/Signup/components/SignupForm.tsx | 36 +++++++++++++++------- 5 files changed, 71 insertions(+), 41 deletions(-) diff --git a/src/index.scss b/src/index.scss index 65a3b40fff..118d7d33e1 100644 --- a/src/index.scss +++ b/src/index.scss @@ -393,3 +393,20 @@ abbr[title] { .text-ellipsis { text-overflow: ellipsis; } + +@media (max-width: 639px) { + .bg-login-gradient { + background: linear-gradient(180deg, rgba(249, 249, 252, 0) 0%, #f9f9fc 100%); + } + .dark .bg-login-gradient { + background: linear-gradient(180deg, #1c1c1c 0%, #031632 100%); + } +} + +.auth-footer-link { + @apply font-normal text-base no-underline text-primary hover:text-primary-dark; + + @media (min-width: 640px) { + @apply text-gray-80 hover:text-gray-100; + } +} diff --git a/src/views/Login/SignInView.tsx b/src/views/Login/SignInView.tsx index 7ea49a85da..f6107da983 100644 --- a/src/views/Login/SignInView.tsx +++ b/src/views/Login/SignInView.tsx @@ -8,10 +8,9 @@ interface SignInProps { export default function SignInView(props: Readonly): JSX.Element { const { translate } = useTranslationContext(); + return ( -
+
{!props.displayIframe && (
@@ -23,19 +22,11 @@ export default function SignInView(props: Readonly): JSX.Element {
{!props.displayIframe && ( -
- + diff --git a/src/views/Login/components/LogIn.tsx b/src/views/Login/components/LogIn.tsx index 768f46ee16..5a7564e294 100644 --- a/src/views/Login/components/LogIn.tsx +++ b/src/views/Login/components/LogIn.tsx @@ -6,26 +6,26 @@ import { SubmitHandler, useForm, useWatch } from 'react-hook-form'; import { useSelector } from 'react-redux'; import { Link } from 'react-router-dom'; -import localStorageService from 'services/local-storage.service'; -import { twoFactorRegexPattern } from 'services/validation.service'; import { RootState } from 'app/store'; import { useAppDispatch } from 'app/store/hooks'; import { userActions } from 'app/store/slices/user'; import authService, { authenticateUser, is2FANeeded } from 'services/auth.service'; +import localStorageService from 'services/local-storage.service'; +import { twoFactorRegexPattern } from 'services/validation.service'; import { UserSettings } from '@internxt/sdk/dist/shared/types/userSettings'; import { Button } from '@internxt/ui'; import { WarningCircle } from '@phosphor-icons/react'; -import { useOAuthFlow } from 'views/Login/hooks/useOAuthFlow'; -import { errorService, navigationService, workspacesService, envService, vpnAuthService } from 'services'; import AppError, { AppView, IFormValues } from 'app/core/types'; import { useTranslationContext } from 'app/i18n/provider/TranslationProvider'; import notificationsService, { ToastType } from 'app/notifications/services/notifications.service'; -import useLoginRedirections from '../hooks/useLoginRedirections'; import shareService from 'app/share/services/share.service'; import PasswordInput from 'components/PasswordInput'; import TextInput from 'components/TextInput'; +import { envService, errorService, navigationService, vpnAuthService, workspacesService } from 'services'; import { AuthMethodTypes } from 'views/Checkout/types'; +import { useOAuthFlow } from 'views/Login/hooks/useOAuthFlow'; +import useLoginRedirections from '../hooks/useLoginRedirections'; const showNotification = ({ text, isError }: { text: string; isError: boolean }) => { notificationsService.show({ @@ -288,7 +288,8 @@ export default function LogIn(): JSX.Element {
-
+ {/* Desktop: link style */} +
{translate('auth.login.dontHaveAccount')}
+ + {/* Mobile: button style */} +
+

{translate('auth.login.dontHaveAccount')}

+ + + +
); diff --git a/src/views/Signup/SignupView.tsx b/src/views/Signup/SignupView.tsx index c199626de1..07f248608b 100644 --- a/src/views/Signup/SignupView.tsx +++ b/src/views/Signup/SignupView.tsx @@ -20,9 +20,7 @@ export default function SignUpView(props: Readonly): JSX.Elemen const isRegularSignup = !props.displayIframe && !autoSubmit.enabled; return ( -
+
{isRegularSignup && (
@@ -34,15 +32,11 @@ export default function SignUpView(props: Readonly): JSX.Elemen
{isRegularSignup && ( -
- + diff --git a/src/views/Signup/components/SignupForm.tsx b/src/views/Signup/components/SignupForm.tsx index 4d82a4f7ca..138a12f477 100644 --- a/src/views/Signup/components/SignupForm.tsx +++ b/src/views/Signup/components/SignupForm.tsx @@ -6,22 +6,22 @@ import { SubmitHandler, useForm, useWatch } from 'react-hook-form'; import { Link } from 'react-router-dom'; import PasswordFieldWithInfo from './PasswordFieldWithInfo'; +import testPasswordStrength from '@internxt/lib/dist/src/auth/testPasswordStrength'; +import { Button } from '@internxt/ui'; +import { AppView, IFormValues } from 'app/core/types'; +import { useTranslationContext } from 'app/i18n/provider/TranslationProvider'; import { useAppDispatch } from 'app/store/hooks'; import { planThunks } from 'app/store/slices/plan'; -import { errorService, navigationService, envService, localStorageService } from 'services'; -import { AppView, IFormValues } from 'app/core/types'; import TextInput from 'components/TextInput'; -import testPasswordStrength from '@internxt/lib/dist/src/auth/testPasswordStrength'; -import { useSignUp } from '../hooks/useSignup'; -import { useTranslationContext } from 'app/i18n/provider/TranslationProvider'; +import { MAX_PASSWORD_LENGTH } from 'components/ValidPassword'; +import { envService, errorService, localStorageService, navigationService } from 'services'; import authService, { authenticateUser } from 'services/auth.service'; -import PreparingWorkspaceAnimation from '../../../components/PreparingWorkspaceAnimation'; +import vpnAuthService from 'services/vpnAuth.service'; import { paymentService } from 'views/Checkout/services'; -import { MAX_PASSWORD_LENGTH } from 'components/ValidPassword'; -import { Button } from '@internxt/ui'; import { AuthMethodTypes } from 'views/Checkout/types'; -import vpnAuthService from 'services/vpnAuth.service'; import { useOAuthFlow } from 'views/Login/hooks/useOAuthFlow'; +import PreparingWorkspaceAnimation from '../../../components/PreparingWorkspaceAnimation'; +import { useSignUp } from '../hooks/useSignup'; export interface SignUpProps { location: { @@ -293,15 +293,29 @@ function SignUpForm(): JSX.Element {
-
+ {/* Desktop: link style */} +
{translate('auth.signup.haveAccount')} {translate('auth.signup.login')}
+ + {/* Mobile: button style */} +
+

{translate('auth.signup.haveAccount')}

+ + + +
); }; From 982344ce88f2340f2b4f581c5a097e4456b45d1a Mon Sep 17 00:00:00 2001 From: Ramon Candel Segura Date: Fri, 16 Jan 2026 13:13:58 +0100 Subject: [PATCH 2/8] Fixed e2e tests --- src/index.scss | 7 ++++--- test/e2e/tests/pages/loginPage.ts | 4 ++-- test/e2e/tests/pages/signUpPage.ts | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/index.scss b/src/index.scss index 118d7d33e1..f8ac8e3e3c 100644 --- a/src/index.scss +++ b/src/index.scss @@ -394,10 +394,11 @@ abbr[title] { text-overflow: ellipsis; } -@media (max-width: 639px) { +@media (width <= 639px) { .bg-login-gradient { - background: linear-gradient(180deg, rgba(249, 249, 252, 0) 0%, #f9f9fc 100%); + background: linear-gradient(180deg, rgb(249 249 252 / 0%) 0%, #f9f9fc 100%); } + .dark .bg-login-gradient { background: linear-gradient(180deg, #1c1c1c 0%, #031632 100%); } @@ -406,7 +407,7 @@ abbr[title] { .auth-footer-link { @apply font-normal text-base no-underline text-primary hover:text-primary-dark; - @media (min-width: 640px) { + @media (width >= 640px) { @apply text-gray-80 hover:text-gray-100; } } diff --git a/test/e2e/tests/pages/loginPage.ts b/test/e2e/tests/pages/loginPage.ts index 758891a6bd..97c84f57e5 100644 --- a/test/e2e/tests/pages/loginPage.ts +++ b/test/e2e/tests/pages/loginPage.ts @@ -31,8 +31,8 @@ export class LoginPage { this.loginButton = this.page.getByRole('button', { name: 'Log in' }); this.loginButtonText = this.page.locator('[data-cy="loginButton"] div'); this.forgotPassword = this.page.getByText('Forgot your password?'); - this.dontHaveAccountText = this.page.getByText('Don’t have an account?'); - this.createAccount = this.page.getByText('Create account'); + this.dontHaveAccountText = this.page.getByText(/Don.t have an account\?/).first(); + this.createAccount = this.page.getByRole('link', { name: 'Create account' }); this.termsAndConditions = this.page.getByRole('link', { name: 'Terms and conditions' }); this.needHelp = this.page.getByRole('link', { name: 'Need help?' }); this.wrongCredentials = this.page.locator('[class="flex flex-row items-start pt-1"] span'); diff --git a/test/e2e/tests/pages/signUpPage.ts b/test/e2e/tests/pages/signUpPage.ts index de69e63feb..f45b018dc7 100644 --- a/test/e2e/tests/pages/signUpPage.ts +++ b/test/e2e/tests/pages/signUpPage.ts @@ -30,10 +30,10 @@ export class SignUpPage { this.passwordWarning = this.page.locator('[class="pt-1"] p'); this.disclaimer = this.page.locator('[class$="pr-4 dark:bg-primary/20"] p'); this.learnMoreLinkText = this.page.getByRole('link', { name: 'Learn more' }); - this.createAccountButton = this.page.getByRole('button', { name: 'Create account' }); - this.createAccountButtonText = this.page.locator('[class$="justify-center space-x-2"]'); + this.createAccountButton = this.page.getByRole('button', { name: 'Create account' }).first(); + this.createAccountButtonText = this.page.getByRole('button', { name: 'Create account' }).first().locator('div'); this.byCreatingYourAccountText = this.page.locator('[class="mt-2 w-full text-xs text-gray-50"]'); - this.alreadyHaveAccountText = this.page.locator('[class$="space-x-1.5 font-medium"] span'); + this.alreadyHaveAccountText = this.page.getByText('Already have an account?').first(); this.logIn = this.page.getByRole('link', { name: 'Log in' }); this.termsAndConditions = this.page.getByRole('link', { name: 'you accept the terms & conditions' }); this.needHelp = this.page.getByRole('link', { name: 'Need help?' }); From 78afc4bba9cf87432c17d2d5ec9635fe007f0d1d Mon Sep 17 00:00:00 2001 From: Ramon Candel Segura Date: Tue, 27 Jan 2026 09:47:20 +0100 Subject: [PATCH 3/8] feat: update login and signup texts and e2e tests --- src/app/i18n/locales/de.json | 7 +++++-- src/app/i18n/locales/en.json | 13 ++++++++----- src/app/i18n/locales/es.json | 7 +++++-- src/app/i18n/locales/fr.json | 7 +++++-- src/app/i18n/locales/it.json | 7 +++++-- src/app/i18n/locales/ru.json | 7 +++++-- src/app/i18n/locales/tw.json | 7 +++++-- src/app/i18n/locales/zh.json | 7 +++++-- src/views/Login/components/LogIn.tsx | 4 ++-- test/e2e/tests/helper/staticData.ts | 2 +- test/e2e/tests/pages/loginPage.ts | 6 ++---- test/e2e/tests/pages/signUpPage.ts | 2 +- 12 files changed, 49 insertions(+), 27 deletions(-) diff --git a/src/app/i18n/locales/de.json b/src/app/i18n/locales/de.json index b22ba8deaa..dcc9f05746 100644 --- a/src/app/i18n/locales/de.json +++ b/src/app/i18n/locales/de.json @@ -82,16 +82,19 @@ "login": { "title": "Anmelden", "forgotPwd": "Haben Sie Ihr Passwort vergessen?", - "dontHaveAccount": "Sie haben kein Konto?", + "dontHaveAccount": "Sie haben kein Internxt-Konto?", "createAccount": "Konto erstellen", "2FA": "Zwei-Faktor-Code", "twoFactorAuthenticationCode": "Zwei-Faktor-Authentifizierungscode", "wrongLogin": "Ungültiger Benutzername oder Passwort", "failedToSendAuthData": "Fehler beim Senden der Authentifizierungsdaten. Bitte versuchen Sie es erneut." }, + "button": { + "loginAction": "Anmelden" + }, "signup": { "title": "Konto erstellen", - "haveAccount": "Haben Sie bereits ein Konto?", + "haveAccount": "Haben Sie bereits ein Internxt-Konto?", "login": "Anmelden", "encrypting": "Verschlüsselung im Gange", "info": { diff --git a/src/app/i18n/locales/en.json b/src/app/i18n/locales/en.json index 10465c8282..74fd4b5d86 100644 --- a/src/app/i18n/locales/en.json +++ b/src/app/i18n/locales/en.json @@ -101,19 +101,22 @@ "terms2": "you accept the terms & conditions", "decrypting": "Decrypting...", "login": { - "title": "Log in", + "title": "Login", "forgotPwd": "Forgot your password?", - "dontHaveAccount": "Don’t have an account?", + "dontHaveAccount": "Don't have an Internxt account?", "createAccount": "Create account", "2FA": "Two factor code", "twoFactorAuthenticationCode": "Two factor authentication code", "wrongLogin": "Invalid username or password", "failedToSendAuthData": "Failed to send authentication data. Please try again." }, + "button": { + "loginAction": "Log in" + }, "signup": { "title": "Create account", - "haveAccount": "Already have an account?", - "login": "Log in", + "haveAccount": "Already have an Internxt account?", + "login": "Login", "encrypting": "Encrypting", "info": { "normalText": "Internxt doesn’t store passwords.", @@ -244,7 +247,7 @@ }, "title": { "signUp": "Create an account", - "signIn": "Log in", + "signIn": "Login", "userIsSignedIn": "User signed in as" }, "emailMustNotBeEmpty": "Email must not be empty", diff --git a/src/app/i18n/locales/es.json b/src/app/i18n/locales/es.json index ca0c96ed54..cd3f3e3f74 100644 --- a/src/app/i18n/locales/es.json +++ b/src/app/i18n/locales/es.json @@ -82,16 +82,19 @@ "login": { "title": "Iniciar Sesión", "forgotPwd": "¿Olvidaste tu contraseña?", - "dontHaveAccount": "¿No tienes cuenta?", + "dontHaveAccount": "¿No tienes cuenta de Internxt?", "createAccount": "Crear cuenta", "2FA": "Código de dos factores", "twoFactorAuthenticationCode": "Código de autenticación de dos factores", "wrongLogin": "Nombre de usuario o contraseña no válidos", "failedToSendAuthData": "Error al enviar datos de autenticación. Por favor, inténtalo de nuevo." }, + "button": { + "loginAction": "Iniciar sesión" + }, "signup": { "title": "Crear cuenta", - "haveAccount": "¿Ya tienes una cuenta?", + "haveAccount": "¿Ya tienes una cuenta de Internxt?", "login": "Iniciar sesión", "encrypting": "Cifrando", "info": { diff --git a/src/app/i18n/locales/fr.json b/src/app/i18n/locales/fr.json index 26faa6331a..4a3d79160e 100644 --- a/src/app/i18n/locales/fr.json +++ b/src/app/i18n/locales/fr.json @@ -82,16 +82,19 @@ "login": { "title": " Connexion ", "forgotPwd": "Mot de passe oublié?", - "dontHaveAccount": "Vous n'avez pas de compte ?", + "dontHaveAccount": "Vous n'avez pas de compte Internxt ?", "createAccount": "Créer un compte", "2FA": "Code à deux facteurs", "twoFactorAuthenticationCode": "Code d'authentification à deux facteurs", "wrongLogin": "Nom d'utilisateur ou mot de passe invalide", "failedToSendAuthData": "Échec de l'envoi des données d'authentification. Veuillez réessayer." }, + "button": { + "loginAction": "Se connecter" + }, "signup": { "title": "Créer un compte", - "haveAccount": "Vous avez déjà un compte ?", + "haveAccount": "Vous avez déjà un compte Internxt ?", "login": " Connexion ", "encrypting": "Encryptant", "info": { diff --git a/src/app/i18n/locales/it.json b/src/app/i18n/locales/it.json index 40ad67861e..bb8c8b9040 100644 --- a/src/app/i18n/locales/it.json +++ b/src/app/i18n/locales/it.json @@ -103,16 +103,19 @@ "login": { "title": "Accedere", "forgotPwd": "Hai dimenticato la password?", - "dontHaveAccount": "Non hai un account?", + "dontHaveAccount": "Non hai un account Internxt?", "createAccount": "Creare un account", "2FA": "Codice a due fattori", "twoFactorAuthenticationCode": "Codice di autenticazione a due fattori", "wrongLogin": "Nome utente o password non validi", "failedToSendAuthData": "Impossibile inviare i dati di autenticazione. Riprova." }, + "button": { + "loginAction": "Accedi" + }, "signup": { "title": "Creare un account", - "haveAccount": "Hai già un account?", + "haveAccount": "Hai già un account Internxt?", "login": "Accedi", "encrypting": "Crittografia in corso", "info": { diff --git a/src/app/i18n/locales/ru.json b/src/app/i18n/locales/ru.json index a15c66cf0b..36f707a6bd 100644 --- a/src/app/i18n/locales/ru.json +++ b/src/app/i18n/locales/ru.json @@ -82,16 +82,19 @@ "login": { "title": "Войти", "forgotPwd": "Забыли пароль?", - "dontHaveAccount": "У вас нет учетной записи?", + "dontHaveAccount": "У вас нет учетной записи Internxt?", "createAccount": "Создать учетную запись", "2FA": "Двухфакторный код", "twoFactorAuthenticationCode": "Код двухфакторной аутентификации", "wrongLogin": "Неверное имя пользователя или пароль", "failedToSendAuthData": "Не удалось отправить данные аутентификации. Пожалуйста, попробуйте еще раз." }, + "button": { + "loginAction": "Войти" + }, "signup": { "title": "Создать учетную запись", - "haveAccount": "Уже есть аккаунт?", + "haveAccount": "Уже есть аккаунт Internxt?", "login": "Войти", "encrypting": "Идет шифрование", "info": { diff --git a/src/app/i18n/locales/tw.json b/src/app/i18n/locales/tw.json index e65d08a474..5149bec33b 100644 --- a/src/app/i18n/locales/tw.json +++ b/src/app/i18n/locales/tw.json @@ -102,16 +102,19 @@ "login": { "title": "登錄", "forgotPwd": "忘記密碼?", - "dontHaveAccount": "沒有帳戶?", + "dontHaveAccount": "沒有 Internxt 帳戶?", "createAccount": "創建帳戶", "2FA": "雙重身份驗證代碼", "twoFactorAuthenticationCode": "雙重身份驗證代碼", "wrongLogin": "使用者名稱或密碼無效", "failedToSendAuthData": "無法發送身份驗證數據。請重試。" }, + "button": { + "loginAction": "登錄" + }, "signup": { "title": "創建帳戶", - "haveAccount": "已有帳戶?", + "haveAccount": "已有 Internxt 帳戶?", "login": "登錄", "encrypting": "加密中", "info": { diff --git a/src/app/i18n/locales/zh.json b/src/app/i18n/locales/zh.json index e3cb6af9b9..b1b7daf9e9 100644 --- a/src/app/i18n/locales/zh.json +++ b/src/app/i18n/locales/zh.json @@ -100,16 +100,19 @@ "login": { "title": "登录", "forgotPwd": "忘记密码了?", - "dontHaveAccount": "没有账户?", + "dontHaveAccount": "没有 Internxt 账户?", "createAccount": "创建账户", "2FA": "双因素代码", "twoFactorAuthenticationCode": "双因素验证码", "wrongLogin": "用户名或密码无效", "failedToSendAuthData": "发送身份验证数据失败。请重试。" }, + "button": { + "loginAction": "登录" + }, "signup": { "title": "创建账户", - "haveAccount": "已有账户?", + "haveAccount": "已有 Internxt 账户?", "login": "登录", "encrypting": "加密中", "info": { diff --git a/src/views/Login/components/LogIn.tsx b/src/views/Login/components/LogIn.tsx index 5a7564e294..471304580d 100644 --- a/src/views/Login/components/LogIn.tsx +++ b/src/views/Login/components/LogIn.tsx @@ -272,7 +272,7 @@ export default function LogIn(): JSX.Element { variant="primary" disabled={isLoggingIn} > - {isLoggingIn && isValid ? translate('auth.decrypting') : translate('auth.login.title')} + {isLoggingIn && isValid ? translate('auth.decrypting') : translate('auth.button.loginAction')} @@ -301,7 +301,7 @@ export default function LogIn(): JSX.Element { {/* Mobile: button style */}
-

{translate('auth.login.dontHaveAccount')}

+

{translate('auth.login.dontHaveAccount')}

@@ -310,7 +310,7 @@ function SignUpForm(): JSX.Element { variant="secondary" className="w-full !border-highlight/10 !bg-white/15 !text-gray-80 !shadow-sm hover:!bg-white/25 dark:!border-white/10 dark:!text-white" > - {translate('auth.signup.login')} + {translate('auth.button.loginAction')}
From 117eae098a1dca4a44330fefa77a945d4f99f403 Mon Sep 17 00:00:00 2001 From: Ramon Candel Segura Date: Tue, 27 Jan 2026 11:41:48 +0100 Subject: [PATCH 7/8] Added log in button text to end to end tests --- test/e2e/tests/helper/staticData.ts | 1 + test/e2e/tests/specs/internxt-signup.spec.ts | 8 +++----- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/test/e2e/tests/helper/staticData.ts b/test/e2e/tests/helper/staticData.ts index 05ce78d63f..9f46d4be0f 100644 --- a/test/e2e/tests/helper/staticData.ts +++ b/test/e2e/tests/helper/staticData.ts @@ -24,6 +24,7 @@ export const staticData = { needHelpTitle: 'How can we help you?', howToCreateBackUpKeyPageTitle: 'How do I create a backup key?', logInPageTitle: 'Login', + logInButtonText: 'Log in', userAlreadyRegistered: 'already registered', accountRecovery: 'Account recovery', diff --git a/test/e2e/tests/specs/internxt-signup.spec.ts b/test/e2e/tests/specs/internxt-signup.spec.ts index 1cb10be93f..e92d44746c 100644 --- a/test/e2e/tests/specs/internxt-signup.spec.ts +++ b/test/e2e/tests/specs/internxt-signup.spec.ts @@ -1,8 +1,8 @@ import { faker } from '@faker-js/faker'; import { expect, test } from '@playwright/test'; +import { getUser, getUserCredentials } from '../helper/getUser'; import { staticData } from '../helper/staticData'; import { SignUpPage } from '../pages/signUpPage'; -import { getUser, getUserCredentials } from '../helper/getUser'; const BASE_API_URL = process.env.REACT_APP_DRIVE_NEW_API_URL; const credentialsFile = getUserCredentials(); @@ -97,13 +97,11 @@ test.describe('Internxt SignUp', async () => { expect(termsOfServiceTitle).toEqual(staticData.termsOfServiceTitle); }); - test('TC7: Validate that the user is redirected to the “Log in” page after clicking on “Log in”', async ({ - page, - }) => { + test('TC7: Validate that the user is redirected to the “Login” page after clicking on “Log in”', async ({ page }) => { const SignupPage = new SignUpPage(page); const { logInText, logInTitle } = await SignupPage.clickOnLogIn(); - expect(logInText).toEqual(staticData.logInPageTitle); + expect(logInText).toEqual(staticData.logInButtonText); expect(logInTitle).toEqual(staticData.logInPageTitle); }); From f6e531f330828a09399edc44b8b38544b90a65ba Mon Sep 17 00:00:00 2001 From: Ramon Candel Segura Date: Tue, 27 Jan 2026 12:30:17 +0100 Subject: [PATCH 8/8] Changed forgot password view to match mobile login and signup style --- src/views/Login/RecoveryLinkView.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/Login/RecoveryLinkView.tsx b/src/views/Login/RecoveryLinkView.tsx index dc331fcba8..8acf1407b7 100644 --- a/src/views/Login/RecoveryLinkView.tsx +++ b/src/views/Login/RecoveryLinkView.tsx @@ -5,7 +5,7 @@ import { RecoveryLink } from './components'; function RecoveryLinkView(): JSX.Element { const { translate } = useTranslationContext(); return ( -
+
@@ -14,11 +14,11 @@ function RecoveryLinkView(): JSX.Element {
-