Client: Confirm: CreateUser: add greeting mode

This commit is contained in:
Viktor Fomin 2023-03-10 20:31:04 +03:00
parent 50a0620598
commit 00e3e50876
2 changed files with 197 additions and 152 deletions

View File

@ -144,7 +144,7 @@ export const RegisterContainer = styled.div`
.line:after { .line:after {
content: ""; content: "";
flex-grow: 1; flex-grow: 1;
background: ${(props) => props.theme.invitePage.borderColor};; background: ${(props) => props.theme.invitePage.borderColor};
height: 1px; height: 1px;
font-size: 0px; font-size: 0px;
line-height: 0px; line-height: 0px;

View File

@ -5,6 +5,8 @@ import { withTranslation } from "react-i18next";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { createUser, signupOAuth } from "@docspace/common/api/people"; import { createUser, signupOAuth } from "@docspace/common/api/people";
import { inject, observer } from "mobx-react"; import { inject, observer } from "mobx-react";
import { isMobile } from "react-device-detect";
import { isDesktop as isDesktopUtil } from "@docspace/components/utils/device";
import Avatar from "@docspace/components/avatar"; import Avatar from "@docspace/components/avatar";
import Button from "@docspace/components/button"; import Button from "@docspace/components/button";
import TextInput from "@docspace/components/text-input"; import TextInput from "@docspace/components/text-input";
@ -67,12 +69,30 @@ const CreateUserForm = (props) => {
const [isEmailErrorShow, setIsEmailErrorShow] = useState(false); const [isEmailErrorShow, setIsEmailErrorShow] = useState(false);
const [isPasswordErrorShow, setIsPasswordErrorShow] = useState(false); const [isPasswordErrorShow, setIsPasswordErrorShow] = useState(false);
const [showForm, setShowForm] = useState(true);
const [showGreeting, setShowGreeting] = useState(true);
const focusInput = () => { const focusInput = () => {
if (inputRef) { if (inputRef) {
inputRef.current.focus(); inputRef.current.focus();
} }
}; };
const onCheckGreeting = () => {
const isGreetingMode = oauthDataExists() && isMobile; /*!isDesktopUtil()*/
setShowForm(!isGreetingMode);
};
const onGreetingJoin = () => {
setShowForm(true);
setShowGreeting(false);
};
/*useEffect(() => {
window.addEventListener("resize", onCheckGreeting);
return () => window.removeEventListener("resize", onCheckGreeting);
}, []);*/
useEffect(() => { useEffect(() => {
const { isAuthenticated, logout, linkData, capabilities } = props; const { isAuthenticated, logout, linkData, capabilities } = props;
@ -91,6 +111,7 @@ const CreateUserForm = (props) => {
setSsoLabel(capabilities?.ssoLabel); setSsoLabel(capabilities?.ssoLabel);
setSsoUrl(capabilities?.ssoUrl); setSsoUrl(capabilities?.ssoUrl);
onCheckGreeting();
focusInput(); focusInput();
}; };
@ -378,6 +399,8 @@ const CreateUserForm = (props) => {
{greetingTitle} {greetingTitle}
</Text> </Text>
{showGreeting && (
<>
<div className="greeting-block"> <div className="greeting-block">
<Avatar className="avatar" role="user" source={userAvatar} /> <Avatar className="avatar" role="user" source={userAvatar} />
<div className="user-info"> <div className="user-info">
@ -393,6 +416,8 @@ const CreateUserForm = (props) => {
<div className="tooltip"> <div className="tooltip">
<span className="tooltiptext">{t("WelcomeUser")}</span> <span className="tooltiptext">{t("WelcomeUser")}</span>
</div> </div>
</>
)}
</GreetingContainer> </GreetingContainer>
<FormWrapper> <FormWrapper>
@ -426,6 +451,7 @@ const CreateUserForm = (props) => {
</div> </div>
)} )}
{showForm && (
<form className="auth-form-container"> <form className="auth-form-container">
<div className="auth-form-fields"> <div className="auth-form-fields">
<FieldContainer <FieldContainer
@ -575,6 +601,25 @@ const CreateUserForm = (props) => {
/> />
</div> </div>
</form> </form>
)}
{!showForm && (
<Button
className="login-button"
primary
size="medium"
scale={true}
label={
isLoading
? t("Common:LoadingProcessing")
: t("LoginRegistryButton")
}
tabIndex={1}
isDisabled={isLoading}
isLoading={isLoading}
onClick={onGreetingJoin}
/>
)}
<MoreLoginModal <MoreLoginModal
t={t} t={t}