import React, { useState } from "react"; import { Button, Input, toast, Text } from "design-system"; import { useDispatch, useSelector } from "react-redux"; import { getCurrentUser } from "selectors/usersSelectors"; import { forgotPasswordSubmitHandler } from "pages/UserAuth/helpers"; import { FORGOT_PASSWORD_SUCCESS_TEXT, USER_DISPLAY_NAME_CHAR_CHECK_FAILED, USER_DISPLAY_NAME_PLACEHOLDER, USER_DISPLAY_PICTURE_PLACEHOLDER, USER_EMAIL_PLACEHOLDER, USER_RESET_PASSWORD, } from "@appsmith/constants/messages"; import { logoutUser, updateUserDetails } from "actions/userActions"; import UserProfileImagePicker from "./UserProfileImagePicker"; import { Wrapper, FieldWrapper, LabelWrapper } from "./StyledComponents"; import { ANONYMOUS_USERNAME } from "constants/userConstants"; import { ALL_LANGUAGE_CHARACTERS_REGEX } from "constants/Regex"; import { createMessage } from "design-system-old/build/constants/messages"; import { notEmptyValidator } from "design-system-old"; import { getIsFormLoginEnabled } from "@appsmith/selectors/tenantSelectors"; const nameValidator = ( value: string, ): { isValid: boolean; message: string; } => { const notEmpty = notEmptyValidator(value); if (!notEmpty.isValid) { return notEmpty; } if (!new RegExp(`^[${ALL_LANGUAGE_CHARACTERS_REGEX} 0-9.'-]+$`).test(value)) { return { isValid: false, message: createMessage(USER_DISPLAY_NAME_CHAR_CHECK_FAILED), }; } return { isValid: true, message: "", }; }; function General() { const user = useSelector(getCurrentUser); const isFormLoginEnabled = useSelector(getIsFormLoginEnabled); const [name, setName] = useState(user?.name); const dispatch = useDispatch(); const forgotPassword = async () => { try { await forgotPasswordSubmitHandler({ email: user?.email }, dispatch); toast.show(createMessage(FORGOT_PASSWORD_SUCCESS_TEXT, user?.email), { kind: "success", }); dispatch(logoutUser()); } catch (error) { toast.show((error as { _error: string })._error, { kind: "success", }); } }; const saveName = () => { name && nameValidator(name).isValid && dispatch( updateUserDetails({ name, }), ); }; if (user?.email === ANONYMOUS_USERNAME) return null; return ( {createMessage(USER_DISPLAY_PICTURE_PLACEHOLDER)}
{ if (ev.key === "Enter") { saveName(); } }} placeholder={createMessage(USER_DISPLAY_NAME_PLACEHOLDER)} renderAs="input" size="md" type="text" />
{isFormLoginEnabled && ( )}
); } export default General;