parent
828301e428
commit
dc7e6b4fc1
15 changed files with 5492 additions and 48 deletions
After Width: | Height: | Size: 582 B |
After Width: | Height: | Size: 736 KiB |
@ -0,0 +1,94 @@ |
|||||||
|
import React, { useState } from "react"; |
||||||
|
import { connect } from "react-redux"; |
||||||
|
import { useNavigate } from "react-router-dom"; |
||||||
|
import SignUp from "../SignUp"; |
||||||
|
import Button from "../../../components/Button"; |
||||||
|
|
||||||
|
//assets
|
||||||
|
import logoIcon from "../SignUp/assets/logo.svg"; |
||||||
|
import bgImage from "./bg.svg"; |
||||||
|
import arrowIcon from "./back.svg"; |
||||||
|
|
||||||
|
export const Desktop = ({}) => { |
||||||
|
const [phase, setPhase] = useState("manage"); |
||||||
|
const navigate = useNavigate(); |
||||||
|
|
||||||
|
const UserMangement = () => { |
||||||
|
return ( |
||||||
|
<div |
||||||
|
className={`flex flex-col items-center justify-center w-full relative h-full transform transition-all duration-700 ${ |
||||||
|
phase !== "manage" ? "translate-x-full" : "" |
||||||
|
}`}
|
||||||
|
> |
||||||
|
<img |
||||||
|
src={logoIcon} |
||||||
|
alt="" |
||||||
|
className="w-20 absolute left-1/2 top-10 transform -translate-x-1/2" |
||||||
|
/> |
||||||
|
<strong className="text-2xl text-blueC0 self-start tracking-tighter"> |
||||||
|
ورود یا ثبت نام |
||||||
|
</strong> |
||||||
|
<p className="text-tiny self-start text-gray-500 mt-6 leading-6"> |
||||||
|
کاربر گرامی لطفا یکی از دوگزینه زیر را انتخاب نمائید. |
||||||
|
<br /> درصورتی که عضو نیستید روی دکمه ثبت نام بزنید |
||||||
|
</p> |
||||||
|
<div className="mt-16 flex flex-col gap-4 w-full"> |
||||||
|
<Button |
||||||
|
title="ثبت نام" |
||||||
|
backgroundColor="bg-blueC0" |
||||||
|
border={{ color: "#196EC055", width: "1px" }} |
||||||
|
width="100%" |
||||||
|
color="text-white" |
||||||
|
onClick={() => setPhase("signup")} |
||||||
|
/> |
||||||
|
<Button |
||||||
|
title="ورود" |
||||||
|
backgroundColor="bg-transparent border border-solid border-blueC0" |
||||||
|
border={{ color: "", width: 1 }} |
||||||
|
width="100%" |
||||||
|
color="text-blueC0" |
||||||
|
onClick={() => setPhase("login")} |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
const phases = { |
||||||
|
manage: <UserMangement />, |
||||||
|
signup: <SignUp />, |
||||||
|
login: <SignUp />, |
||||||
|
}; |
||||||
|
|
||||||
|
return ( |
||||||
|
<div className="h-screen w-full flex justify-center items-center"> |
||||||
|
<div className="w-4/5 h-4/5 rounded-xl flex overflow-hidden border border-solid border-gray-200"> |
||||||
|
<div className="w-2/5 h-full flex justify-center items-center"> |
||||||
|
<div |
||||||
|
className="w-4/5 flex justify-center items-center relative" |
||||||
|
style={{ height: "90%" }} |
||||||
|
> |
||||||
|
<button |
||||||
|
className="absolute left-0 top-0 p-3 bg-grayF4 rounded-xl z-20" |
||||||
|
onClick={() => |
||||||
|
setPhase(() => (phase === "manage" ? navigate("/") : "manage")) |
||||||
|
} |
||||||
|
> |
||||||
|
<img src={arrowIcon} /> |
||||||
|
</button> |
||||||
|
{phases[phase]} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div className="w-3/5 h-full bg-grayF9 flex justify-center items-center"> |
||||||
|
<img src={bgImage} alt="" className="w-4/5" /> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
); |
||||||
|
}; |
||||||
|
|
||||||
|
const mapStateToProps = (state) => ({}); |
||||||
|
|
||||||
|
const mapDispatchToProps = {}; |
||||||
|
|
||||||
|
export default connect(mapStateToProps, mapDispatchToProps)(Desktop); |
Loading…
Reference in new issue