From 1be505133853e18bb374582d16800f32fee74b6e Mon Sep 17 00:00:00 2001 From: Tasso Evangelista Date: Tue, 2 Jun 2026 20:55:18 -0300 Subject: [PATCH] refactor(web-ui-registration): remove unnecessary ReactElement type annotations across registration components --- packages/web-ui-registration/src/CMSPage.tsx | 3 +- .../src/EmailConfirmationForm.tsx | 3 +- .../web-ui-registration/src/LoginForm.tsx | 3 +- .../web-ui-registration/src/LoginServices.tsx | 10 +--- .../src/LoginServicesButton.tsx | 4 +- .../web-ui-registration/src/RegisterForm.tsx | 3 +- .../src/RegisterFormDisabled.tsx | 3 +- .../src/RegisterSecretPageRouter.tsx | 3 +- .../src/RegistrationPageRouter.tsx | 10 +--- .../src/ResetPassword/ResetPasswordPage.tsx | 3 +- .../src/ResetPasswordForm.tsx | 3 +- .../src/SecretRegisterForm.tsx | 3 +- .../src/SecretRegisterInvalidForm.tsx | 3 +- .../src/components/LoginPoweredBy.tsx | 3 +- .../components/LoginSwitchLanguageFooter.tsx | 4 +- .../src/components/LoginTerms.tsx | 3 +- .../src/components/RegisterTitle.tsx | 3 +- .../src/template/FormSkeleton.tsx | 55 +++++++++---------- .../src/template/HorizontalTemplate.tsx | 4 +- .../src/template/VerticalTemplate.tsx | 4 +- 20 files changed, 51 insertions(+), 79 deletions(-) diff --git a/packages/web-ui-registration/src/CMSPage.tsx b/packages/web-ui-registration/src/CMSPage.tsx index 1ab64126b5b9c..3d83b0b58ed1b 100644 --- a/packages/web-ui-registration/src/CMSPage.tsx +++ b/packages/web-ui-registration/src/CMSPage.tsx @@ -1,7 +1,6 @@ import { Box, IconButton } from '@rocket.chat/fuselage'; import { VerticalWizardLayout, VerticalWizardLayoutFooter, VerticalWizardLayoutForm, VerticalWizardLayoutTitle } from '@rocket.chat/layout'; import { useSetting, useTranslation, useAssetWithDarkModePath } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { LoginPoweredBy } from './components/LoginPoweredBy'; @@ -9,7 +8,7 @@ type CMSPageProps = { page: 'Layout_Terms_of_Service' | 'Layout_Privacy_Policy' | 'Layout_Legal_Notice'; }; -const CMSPage = ({ page }: CMSPageProps): ReactElement => { +const CMSPage = ({ page }: CMSPageProps) => { const t = useTranslation(); const pageContent = useSetting(page, ''); diff --git a/packages/web-ui-registration/src/EmailConfirmationForm.tsx b/packages/web-ui-registration/src/EmailConfirmationForm.tsx index b58a767b0997c..a91c32aadbeb6 100644 --- a/packages/web-ui-registration/src/EmailConfirmationForm.tsx +++ b/packages/web-ui-registration/src/EmailConfirmationForm.tsx @@ -1,12 +1,11 @@ import { FieldGroup, TextInput, Field, FieldLabel, FieldRow, FieldError, ButtonGroup, Button, Callout } from '@rocket.chat/fuselage'; import { Form, ActionLink } from '@rocket.chat/layout'; -import type { ReactElement } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { useLoginSendEmailConfirmation } from './hooks/useLoginSendEmailConfirmation'; -export const EmailConfirmationForm = ({ email, onBackToLogin }: { email?: string; onBackToLogin: () => void }): ReactElement => { +export const EmailConfirmationForm = ({ email, onBackToLogin }: { email?: string; onBackToLogin: () => void }) => { const { t } = useTranslation(); const basicEmailRegex = /^[^@]+@[^@]+$/; diff --git a/packages/web-ui-registration/src/LoginForm.tsx b/packages/web-ui-registration/src/LoginForm.tsx index e9217dd5e15dd..3a2e6e0153db7 100644 --- a/packages/web-ui-registration/src/LoginForm.tsx +++ b/packages/web-ui-registration/src/LoginForm.tsx @@ -15,7 +15,6 @@ import { Form, ActionLink } from '@rocket.chat/layout'; import { useDocumentTitle } from '@rocket.chat/ui-client'; import { useLoginWithPassword, useSetting } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; -import type { ReactElement } from 'react'; import { useEffect, useId, useRef, useState } from 'react'; import { useForm } from 'react-hook-form'; import { Trans, useTranslation } from 'react-i18next'; @@ -55,7 +54,7 @@ export type LoginErrors = keyof typeof LOGIN_SUBMIT_ERRORS | 'totp-canceled' | s export type LoginErrorState = [error: LoginErrors, message?: string] | undefined; -export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }): ReactElement => { +export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }) => { const { register, handleSubmit, diff --git a/packages/web-ui-registration/src/LoginServices.tsx b/packages/web-ui-registration/src/LoginServices.tsx index e36c032e0436f..fca9c8065232e 100644 --- a/packages/web-ui-registration/src/LoginServices.tsx +++ b/packages/web-ui-registration/src/LoginServices.tsx @@ -1,18 +1,12 @@ import { ButtonGroup, Divider } from '@rocket.chat/fuselage'; import { useLoginServices, useSetting } from '@rocket.chat/ui-contexts'; -import type { Dispatch, ReactElement, SetStateAction } from 'react'; +import type { Dispatch, SetStateAction } from 'react'; import { useTranslation } from 'react-i18next'; import type { LoginErrorState } from './LoginForm'; import LoginServicesButton from './LoginServicesButton'; -const LoginServices = ({ - disabled, - setError, -}: { - disabled?: boolean; - setError: Dispatch>; -}): ReactElement | null => { +const LoginServices = ({ disabled, setError }: { disabled?: boolean; setError: Dispatch> }) => { const { t } = useTranslation(); const services = useLoginServices(); const showFormLogin = useSetting('Accounts_ShowFormLogin'); diff --git a/packages/web-ui-registration/src/LoginServicesButton.tsx b/packages/web-ui-registration/src/LoginServicesButton.tsx index 7eb22ad5dbfc6..7d3232ec6b435 100644 --- a/packages/web-ui-registration/src/LoginServicesButton.tsx +++ b/packages/web-ui-registration/src/LoginServicesButton.tsx @@ -2,7 +2,7 @@ import { Button } from '@rocket.chat/fuselage'; import type { Keys as IconName } from '@rocket.chat/icons'; import type { LoginService } from '@rocket.chat/ui-contexts'; import { useLoginWithService } from '@rocket.chat/ui-contexts'; -import type { ReactElement, SetStateAction, Dispatch } from 'react'; +import type { SetStateAction, Dispatch } from 'react'; import { useCallback } from 'react'; import { useTranslation } from 'react-i18next'; @@ -23,7 +23,7 @@ const LoginServicesButton = ({ className?: string; disabled?: boolean; setError?: Dispatch>; -}): ReactElement => { +}) => { const { t } = useTranslation(); const handler = useLoginWithService({ service, buttonLabelText, ...props }); diff --git a/packages/web-ui-registration/src/RegisterForm.tsx b/packages/web-ui-registration/src/RegisterForm.tsx index ca3e87c101254..e4daa610f8719 100644 --- a/packages/web-ui-registration/src/RegisterForm.tsx +++ b/packages/web-ui-registration/src/RegisterForm.tsx @@ -15,7 +15,6 @@ import { import { Form, ActionLink } from '@rocket.chat/layout'; import { CustomFieldsForm, PasswordVerifier, useValidatePassword } from '@rocket.chat/ui-client'; import { useAccountsCustomFields, useSetting, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { useEffect, useId, useRef, useState } from 'react'; import { useForm } from 'react-hook-form'; import { Trans, useTranslation } from 'react-i18next'; @@ -33,7 +32,7 @@ type LoginRegisterPayload = { reason: string; }; -export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }): ReactElement => { +export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }) => { const { t } = useTranslation(); const requireNameForRegister = useSetting('Accounts_RequireNameForSignUp', true); diff --git a/packages/web-ui-registration/src/RegisterFormDisabled.tsx b/packages/web-ui-registration/src/RegisterFormDisabled.tsx index 207783c166793..8930e54e5e0c7 100644 --- a/packages/web-ui-registration/src/RegisterFormDisabled.tsx +++ b/packages/web-ui-registration/src/RegisterFormDisabled.tsx @@ -1,12 +1,11 @@ import { Callout } from '@rocket.chat/fuselage'; import { Form, ActionLink } from '@rocket.chat/layout'; import { useSetting } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import type { DispatchLoginRouter } from './hooks/useLoginRouter'; -export const RegisterFormDisabled = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }): ReactElement => { +export const RegisterFormDisabled = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }) => { const linkReplacementText = useSetting('Accounts_RegistrationForm_LinkReplacementText', ''); const { t } = useTranslation(); diff --git a/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx b/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx index 152345c0fdc31..c38d2dbcfa9b0 100644 --- a/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx +++ b/packages/web-ui-registration/src/RegisterSecretPageRouter.tsx @@ -1,6 +1,5 @@ import { useDocumentTitle } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import RegisterForm from './RegisterForm'; @@ -17,7 +16,7 @@ export const RegisterSecretPageRouter = ({ }: { setLoginRoute: DispatchLoginRouter; origin: 'register' | 'secret-register' | 'invite-register'; -}): ReactElement => { +}) => { const { t } = useTranslation(); const registrationMode = useSetting<'Public' | 'Disabled' | 'Secret URL'>('Accounts_RegistrationForm', 'Public'); diff --git a/packages/web-ui-registration/src/RegistrationPageRouter.tsx b/packages/web-ui-registration/src/RegistrationPageRouter.tsx index 2db5e4f08fd86..0ec9700c38a98 100644 --- a/packages/web-ui-registration/src/RegistrationPageRouter.tsx +++ b/packages/web-ui-registration/src/RegistrationPageRouter.tsx @@ -1,5 +1,5 @@ import { useSession } from '@rocket.chat/ui-contexts'; -import type { ReactElement, ReactNode } from 'react'; +import type { ReactNode } from 'react'; import { useTranslation } from 'react-i18next'; import GuestForm from './GuestForm'; @@ -10,13 +10,7 @@ import ResetPasswordForm from './ResetPasswordForm'; import { useLoginRouter } from './hooks/useLoginRouter'; import type { LoginRoutes } from './hooks/useLoginRouter'; -export const RegistrationPageRouter = ({ - defaultRoute = 'login', - children, -}: { - defaultRoute?: LoginRoutes; - children?: ReactNode; -}): ReactElement | null => { +export const RegistrationPageRouter = ({ defaultRoute = 'login', children }: { defaultRoute?: LoginRoutes; children?: ReactNode }) => { const { t } = useTranslation(); const defaultRouteSession = useSession('loginDefaultState') as LoginRoutes | undefined; const [route, setLoginRoute] = useLoginRouter(defaultRouteSession || defaultRoute); diff --git a/packages/web-ui-registration/src/ResetPassword/ResetPasswordPage.tsx b/packages/web-ui-registration/src/ResetPassword/ResetPasswordPage.tsx index 680e65584c60d..ccaf6906e0228 100644 --- a/packages/web-ui-registration/src/ResetPassword/ResetPasswordPage.tsx +++ b/packages/web-ui-registration/src/ResetPassword/ResetPasswordPage.tsx @@ -13,7 +13,6 @@ import { useLoginWithToken, useEndpoint, } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { useEffect, useId, useRef } from 'react'; import { useForm } from 'react-hook-form'; @@ -24,7 +23,7 @@ const getChangePasswordReason = ({ requirePasswordChangeReason = requirePasswordChange ? 'You_need_to_change_your_password' : 'Please_enter_your_new_password_below', }: Pick = {}) => requirePasswordChangeReason as TranslationKey; -const ResetPasswordPage = (): ReactElement => { +const ResetPasswordPage = () => { const user = useUser(); const t = useTranslation(); const setBasicInfo = useEndpoint('POST', '/v1/users.updateOwnBasicInfo'); diff --git a/packages/web-ui-registration/src/ResetPasswordForm.tsx b/packages/web-ui-registration/src/ResetPasswordForm.tsx index b56b8867bc2af..30c8d4639aa73 100644 --- a/packages/web-ui-registration/src/ResetPasswordForm.tsx +++ b/packages/web-ui-registration/src/ResetPasswordForm.tsx @@ -1,7 +1,6 @@ import { FieldGroup, TextInput, Field, FieldLabel, FieldRow, FieldError, ButtonGroup, Button, Callout } from '@rocket.chat/fuselage'; import { Form, ActionLink } from '@rocket.chat/layout'; import { useDocumentTitle } from '@rocket.chat/ui-client'; -import type { ReactElement } from 'react'; import { useEffect, useId, useRef } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -9,7 +8,7 @@ import { useTranslation } from 'react-i18next'; import type { DispatchLoginRouter } from './hooks/useLoginRouter'; import { useSendForgotPassword } from './hooks/useSendForgotPassword'; -export const ResetPasswordForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }): ReactElement => { +export const ResetPasswordForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }) => { const { t } = useTranslation(); const emailId = useId(); const formLabelId = useId(); diff --git a/packages/web-ui-registration/src/SecretRegisterForm.tsx b/packages/web-ui-registration/src/SecretRegisterForm.tsx index d21370013114d..8c3a23a0b2326 100644 --- a/packages/web-ui-registration/src/SecretRegisterForm.tsx +++ b/packages/web-ui-registration/src/SecretRegisterForm.tsx @@ -1,5 +1,4 @@ import { useRouteParameter } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import RegisterForm from './RegisterForm'; import SecretRegisterInvalidForm from './SecretRegisterInvalidForm'; @@ -8,7 +7,7 @@ import type { DispatchLoginRouter } from './hooks/useLoginRouter'; import FormSkeleton from './template/FormSkeleton'; import HorizontalTemplate from './template/HorizontalTemplate'; -const SecretRegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }): ReactElement => { +const SecretRegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRouter }) => { const hash = useRouteParameter('hash'); const { data: valid, isSuccess } = useCheckRegistrationSecret(hash); diff --git a/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx b/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx index d1fa2df3d4b39..efd43f1e675f6 100644 --- a/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx +++ b/packages/web-ui-registration/src/SecretRegisterInvalidForm.tsx @@ -1,9 +1,8 @@ -import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import VerticalTemplate from './template/VerticalTemplate'; -const SecretRegisterInvalidForm = (): ReactElement => { +const SecretRegisterInvalidForm = () => { const { t } = useTranslation(); return ( diff --git a/packages/web-ui-registration/src/components/LoginPoweredBy.tsx b/packages/web-ui-registration/src/components/LoginPoweredBy.tsx index 24bf12f813699..bb849a69d639f 100644 --- a/packages/web-ui-registration/src/components/LoginPoweredBy.tsx +++ b/packages/web-ui-registration/src/components/LoginPoweredBy.tsx @@ -1,10 +1,9 @@ import { Box } from '@rocket.chat/fuselage'; import { ActionLink } from '@rocket.chat/layout'; import { useSetting } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { Trans } from 'react-i18next'; -export const LoginPoweredBy = (): ReactElement | null => { +export const LoginPoweredBy = () => { const hidePoweredBy = useSetting('Layout_Login_Hide_Powered_By', false); if (hidePoweredBy) { return null; diff --git a/packages/web-ui-registration/src/components/LoginSwitchLanguageFooter.tsx b/packages/web-ui-registration/src/components/LoginSwitchLanguageFooter.tsx index f9fe52411e3fd..d819c66502480 100644 --- a/packages/web-ui-registration/src/components/LoginSwitchLanguageFooter.tsx +++ b/packages/web-ui-registration/src/components/LoginSwitchLanguageFooter.tsx @@ -4,7 +4,7 @@ import { HorizontalWizardLayoutCaption } from '@rocket.chat/layout'; import { normalizeLanguage } from '@rocket.chat/tools'; import { type TranslationLanguage, useSetting, useLoadLanguage, useLanguage, useLanguages } from '@rocket.chat/ui-contexts'; import { useMemo, useEffect } from 'react'; -import type { ReactElement, UIEvent } from 'react'; +import type { UIEvent } from 'react'; import { Trans, useTranslation } from 'react-i18next'; const useSuggestedLanguages = ({ @@ -41,7 +41,7 @@ type LoginSwitchLanguageFooterProps = { const LoginSwitchLanguageFooter = ({ browserLanguage = normalizeLanguage(window.navigator.language ?? 'en'), -}: LoginSwitchLanguageFooterProps): ReactElement | null => { +}: LoginSwitchLanguageFooterProps) => { const loadLanguage = useLoadLanguage(); const { suggestions } = useSuggestedLanguages({ browserLanguage }); diff --git a/packages/web-ui-registration/src/components/LoginTerms.tsx b/packages/web-ui-registration/src/components/LoginTerms.tsx index ec4f2ceef665b..e0688e5795314 100644 --- a/packages/web-ui-registration/src/components/LoginTerms.tsx +++ b/packages/web-ui-registration/src/components/LoginTerms.tsx @@ -2,10 +2,9 @@ import { Box } from '@rocket.chat/fuselage'; import { HorizontalWizardLayoutCaption } from '@rocket.chat/layout'; import { useSetting } from '@rocket.chat/ui-contexts'; import DOMPurify from 'dompurify'; -import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -export const LoginTerms = (): ReactElement => { +export const LoginTerms = () => { const { t } = useTranslation(); const loginTerms = useSetting('Layout_Login_Terms', ''); diff --git a/packages/web-ui-registration/src/components/RegisterTitle.tsx b/packages/web-ui-registration/src/components/RegisterTitle.tsx index 9ee3eb2c20ec6..1df5eed449f2a 100644 --- a/packages/web-ui-registration/src/components/RegisterTitle.tsx +++ b/packages/web-ui-registration/src/components/RegisterTitle.tsx @@ -1,8 +1,7 @@ import { useSetting } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { Trans } from 'react-i18next'; -export const RegisterTitle = (): ReactElement | null => { +export const RegisterTitle = () => { const siteName = useSetting('Site_Name', 'Rocket.Chat'); const hideTitle = useSetting('Layout_Login_Hide_Title', false); diff --git a/packages/web-ui-registration/src/template/FormSkeleton.tsx b/packages/web-ui-registration/src/template/FormSkeleton.tsx index 1fbe850d8abee..bd586ef94a581 100644 --- a/packages/web-ui-registration/src/template/FormSkeleton.tsx +++ b/packages/web-ui-registration/src/template/FormSkeleton.tsx @@ -1,35 +1,32 @@ import { Field, FieldLabel, FieldRow, FieldHint, FieldDescription, Skeleton, InputBoxSkeleton } from '@rocket.chat/fuselage'; import { Form } from '@rocket.chat/layout'; -import type { ReactElement } from 'react'; -const FormSkeleton = (): ReactElement => { - return ( -
- - - - - - - - - - - - - - - - - - - - - +const FormSkeleton = () => ( + + + - -
- ); -}; + + + + + + + + + + + + + + + + + + + + + +); export default FormSkeleton; diff --git a/packages/web-ui-registration/src/template/HorizontalTemplate.tsx b/packages/web-ui-registration/src/template/HorizontalTemplate.tsx index 007f92854f38e..d1887abb284a6 100644 --- a/packages/web-ui-registration/src/template/HorizontalTemplate.tsx +++ b/packages/web-ui-registration/src/template/HorizontalTemplate.tsx @@ -7,14 +7,14 @@ import { HorizontalWizardLayoutFooter, } from '@rocket.chat/layout'; import { useSetting, useAssetWithDarkModePath } from '@rocket.chat/ui-contexts'; -import type { ReactElement, ReactNode } from 'react'; +import type { ReactNode } from 'react'; import LoginPoweredBy from '../components/LoginPoweredBy'; import LoginSwitchLanguageFooter from '../components/LoginSwitchLanguageFooter'; import LoginTerms from '../components/LoginTerms'; import { RegisterTitle } from '../components/RegisterTitle'; -const HorizontalTemplate = ({ children }: { children: ReactNode }): ReactElement => { +const HorizontalTemplate = ({ children }: { children: ReactNode }) => { const hideLogo = useSetting('Layout_Login_Hide_Logo', false); const customLogo = useAssetWithDarkModePath('logo'); const customBackground = useAssetWithDarkModePath('background'); diff --git a/packages/web-ui-registration/src/template/VerticalTemplate.tsx b/packages/web-ui-registration/src/template/VerticalTemplate.tsx index 037f9d30351d3..9865f4864a8cb 100644 --- a/packages/web-ui-registration/src/template/VerticalTemplate.tsx +++ b/packages/web-ui-registration/src/template/VerticalTemplate.tsx @@ -1,14 +1,14 @@ import { Box } from '@rocket.chat/fuselage'; import { VerticalWizardLayout, VerticalWizardLayoutTitle, VerticalWizardLayoutFooter } from '@rocket.chat/layout'; import { useSetting, useAssetWithDarkModePath } from '@rocket.chat/ui-contexts'; -import type { ReactElement, ReactNode } from 'react'; +import type { ReactNode } from 'react'; import LoginPoweredBy from '../components/LoginPoweredBy'; import LoginSwitchLanguageFooter from '../components/LoginSwitchLanguageFooter'; import LoginTerms from '../components/LoginTerms'; import { RegisterTitle } from '../components/RegisterTitle'; -const VerticalTemplate = ({ children }: { children: ReactNode }): ReactElement => { +const VerticalTemplate = ({ children }: { children: ReactNode }) => { const hideLogo = useSetting('Layout_Login_Hide_Logo', false); const customLogo = useAssetWithDarkModePath('logo'); const customBackground = useAssetWithDarkModePath('background');