+
+
회원가입
{renderStep()}
{step !== 5 && (
-
-
{/* Add the ToastContainer for toast notifications */}
+
);
};
diff --git a/src/components/mobile/BottomNavigation.tsx b/src/components/mobile/BottomNavigation.tsx
new file mode 100644
index 0000000..761f2e7
--- /dev/null
+++ b/src/components/mobile/BottomNavigation.tsx
@@ -0,0 +1,34 @@
+import React from "react";
+import { useLocation } from "react-router-dom";
+import { FaHome, FaKey, FaTag, FaUser } from "react-icons/fa";
+
+const BottomNavigation = () => {
+ const location = useLocation();
+
+ const navItems = [
+ { id: "home", label: "홈", icon:
, path: "/app/home" },
+ { id: "auth", label: "인증", icon:
, path: "/app/auth" },
+ { id: "token", label: "토큰", icon:
, path: "/app/myinfo/token" },
+ { id: "mypage", label: "마이페이지", icon:
, path: "/app/mypage" },
+ ];
+
+ return (
+
+
+ {navItems.map((item) => (
+
+ ))}
+
+
+ );
+};
+
+export default BottomNavigation;
diff --git a/src/components/mobile/MobileContainer.tsx b/src/components/mobile/MobileContainer.tsx
new file mode 100644
index 0000000..10ed6fe
--- /dev/null
+++ b/src/components/mobile/MobileContainer.tsx
@@ -0,0 +1,17 @@
+import React from "react";
+import BottomNavigation from "./BottomNavigation";
+
+interface MobileContainerProps {
+ children: React.ReactNode;
+}
+
+const MobileContainer: React.FC
= ({ children }) => {
+ return (
+
+ );
+};
+
+export default MobileContainer
\ No newline at end of file
diff --git a/src/pages/mobile/MobileLoginPage.tsx b/src/pages/mobile/MobileLoginPage.tsx
new file mode 100644
index 0000000..cbc3f0b
--- /dev/null
+++ b/src/pages/mobile/MobileLoginPage.tsx
@@ -0,0 +1,81 @@
+import React from "react";
+import MobileContainer from "../../components/mobile/MobileContainer";
+import { Link } from "react-router-dom";
+
+const MobileLoginPage = () => {
+ const [formData, setFormData] = React.useState({
+ email: "",
+ password: "",
+ rememberMe: false,
+ });
+
+ const handleInputChange = (e: {
+ target: { name: any; value: any; type: any; checked: any };
+ }) => {
+ const { name, value, type, checked } = e.target;
+ setFormData((prev) => ({
+ ...prev,
+ [name]: type === "checkbox" ? checked : value,
+ }));
+ };
+
+ const handleLogin = (type: string) => {
+ console.log(`Logging in with ${type}`, formData);
+ };
+
+ return (
+
+
+
로그인
+
+
+
+ 계정이 없으신가요?{" "}
+
+ NANU ID 생성하기
+
+
+
+
+ );
+};
+
+export default MobileLoginPage;
diff --git a/src/pages/mobile/MobileRegisterPage.tsx b/src/pages/mobile/MobileRegisterPage.tsx
new file mode 100644
index 0000000..8cd6d0b
--- /dev/null
+++ b/src/pages/mobile/MobileRegisterPage.tsx
@@ -0,0 +1,56 @@
+import React, { useState } from "react";
+import { useNavigate } from "react-router-dom";
+import LoginContainer from "../../components/auth/LoginContainer";
+import LoginBanner from "../../components/auth/LoginBanner";
+import RegisterForm from "../../components/auth/RegisterForm";
+import { RegisterFormData } from "../../types/Auth";
+import MobileContainer from "../../components/mobile/MobileContainer";
+
+const MobileRegisterPage = () => {
+ const [formData, setFormData] = useState({
+ email: "",
+ password: "",
+ confirmPassword: "",
+ name: "",
+ birthDate: "",
+ pin: "",
+ confirmPin: "",
+ termsAccepted: false,
+ });
+ const navigate = useNavigate();
+
+ const handleInputChange = (e: React.ChangeEvent) => {
+ const { name, value, type, checked } = e.target;
+ setFormData((prev) => ({
+ ...prev,
+ [name]: type === "checkbox" ? checked : value,
+ }));
+ };
+
+ const handlePinChange = (name: string, value: string) => {
+ setFormData((prev) => ({
+ ...prev,
+ [name]: value,
+ }));
+ };
+
+ const handleRegister = () => {
+ console.log("Register:", formData);
+ };
+
+ return (
+
+
+
+
+
+ );
+};
+
+export default MobileRegisterPage;