- 로그인 화면, 회원가입 화면, 비밀번호 초기화 화면 모바일 ui 대비 작업
This commit is contained in:
@@ -1 +1 @@
|
|||||||
VITE_API_URL=http://localhost:8080
|
VITE_API_URL=http://localhost:8088
|
||||||
|
|||||||
@@ -17,11 +17,13 @@ import { toast } from 'sonner';
|
|||||||
import { useAuthStore } from '@/store/authStore';
|
import { useAuthStore } from '@/store/authStore';
|
||||||
import { Checkbox } from '@/components/ui/checkbox';
|
import { Checkbox } from '@/components/ui/checkbox';
|
||||||
import { Label } from '@/components/ui/label';
|
import { Label } from '@/components/ui/label';
|
||||||
|
import { useIsMobile } from '@/hooks/use-mobile';
|
||||||
|
|
||||||
export default function LoginPage() {
|
export default function LoginPage() {
|
||||||
const [isLoading, setIsLoading] = useState<boolean>(false);
|
const [isLoading, setIsLoading] = useState<boolean>(false);
|
||||||
const [autoLogin, setAutoLogin] = useState<boolean>(false);
|
const [autoLogin, setAutoLogin] = useState<boolean>(false);
|
||||||
const { login } = useAuthStore();
|
const { login } = useAuthStore();
|
||||||
|
const isMobile = useIsMobile();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const accountNetwork = new AccountNetwork();
|
const accountNetwork = new AccountNetwork();
|
||||||
const loginForm = useForm<z.infer<typeof LoginSchema>>({
|
const loginForm = useForm<z.infer<typeof LoginSchema>>({
|
||||||
@@ -73,7 +75,7 @@ export default function LoginPage() {
|
|||||||
};
|
};
|
||||||
login({...data});
|
login({...data});
|
||||||
moveToHomePage();
|
moveToHomePage();
|
||||||
return "";
|
return "로그인 성공";
|
||||||
} else {
|
} else {
|
||||||
throw new Error(res.data.message);
|
throw new Error(res.data.message);
|
||||||
}
|
}
|
||||||
@@ -102,7 +104,7 @@ export default function LoginPage() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full h-full flex flex-col justify-center items-center">
|
<div className="w-full h-full flex flex-col justify-center items-center">
|
||||||
<Card className="w-md pl-2 pr-2">
|
<Card className={isMobile ? "w-full pl-2 pr-2" : "w-md pl-2 pr-2"}>
|
||||||
<CardHeader>
|
<CardHeader>
|
||||||
로그인
|
로그인
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import { AccountNetwork } from '@/network/AccountNetwork';
|
|||||||
import { toast } from 'sonner';
|
import { toast } from 'sonner';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { PageRouting } from '@/const/PageRouting';
|
import { PageRouting } from '@/const/PageRouting';
|
||||||
|
import { useIsMobile } from '@/hooks/use-mobile';
|
||||||
|
import { ScrollArea } from '@/components/ui/scroll-area';
|
||||||
|
|
||||||
export default function SignUpPage() {
|
export default function SignUpPage() {
|
||||||
const [emailVerificationModalOpen, setEmailVerificationModalOpen] = useState<boolean>(false);
|
const [emailVerificationModalOpen, setEmailVerificationModalOpen] = useState<boolean>(false);
|
||||||
@@ -28,6 +30,7 @@ export default function SignUpPage() {
|
|||||||
|
|
||||||
const accountNetwork = new AccountNetwork();
|
const accountNetwork = new AccountNetwork();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const isMobile = useIsMobile();
|
||||||
|
|
||||||
const signUpForm = useForm<z.infer<typeof SignUpSchema>>({
|
const signUpForm = useForm<z.infer<typeof SignUpSchema>>({
|
||||||
resolver: zodResolver(SignUpSchema),
|
resolver: zodResolver(SignUpSchema),
|
||||||
@@ -119,9 +122,11 @@ export default function SignUpPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full h-full flex flex-col justify-center items-center">
|
<div className={"w-full h-full flex flex-col justify-center items-center"}>
|
||||||
<Card className="w-md pl-2 pr-2">
|
|
||||||
|
<Card className={isMobile ? "w-full pl-2 pr-2" : "w-md pl-2 pr-2"}>
|
||||||
<CardHeader>회원가입</CardHeader>
|
<CardHeader>회원가입</CardHeader>
|
||||||
|
<ScrollArea className="h-72 [&>div>div:last-child]:hidden">
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<form id="form-signup">
|
<form id="form-signup">
|
||||||
<FieldGroup>
|
<FieldGroup>
|
||||||
@@ -244,6 +249,7 @@ export default function SignUpPage() {
|
|||||||
</FieldGroup>
|
</FieldGroup>
|
||||||
</form>
|
</form>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
|
</ScrollArea>
|
||||||
<CardFooter>
|
<CardFooter>
|
||||||
<EmailVerificationModal
|
<EmailVerificationModal
|
||||||
trigger={
|
trigger={
|
||||||
@@ -257,7 +263,9 @@ export default function SignUpPage() {
|
|||||||
onVerifySuccess={signup} // ✅ 인증 성공 시 signup 호출
|
onVerifySuccess={signup} // ✅ 인증 성공 시 signup 호출
|
||||||
/>
|
/>
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
|
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
26
src/ui/page/schedule/ScheduleMainPage.tsx
Normal file
26
src/ui/page/schedule/ScheduleMainPage.tsx
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Calendar } from "@/components/ui/calendar";
|
||||||
|
import { DayButton } from "react-day-picker";
|
||||||
|
|
||||||
|
export function ScheduleMainPage() {
|
||||||
|
return (
|
||||||
|
<div className="w-full h-full flex flex-col justify-start items-center">
|
||||||
|
<Calendar
|
||||||
|
mode="single"
|
||||||
|
className="rounded-lg w-full h-full max-h-10/12 border"
|
||||||
|
components={{
|
||||||
|
Weeks: (props) => (
|
||||||
|
<tbody {...props} className={props.className}></tbody>
|
||||||
|
),
|
||||||
|
Week: (props) => (
|
||||||
|
<tr {...props} className={props.className + " h-1/10"}></tr>
|
||||||
|
),
|
||||||
|
Day: (props) => (
|
||||||
|
<td {...props} className={props.className + " h-1"}></td>
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
|
||||||
|
</Calendar>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user