diff --git a/src/_app/App.tsx b/src/_app/App.tsx index 20d42451aa40fdefa3335e97e42c8a9c68dc3d1c..2bea1fb47e24f57671d6ca80fe317d7c35b24948 100644 --- a/src/_app/App.tsx +++ b/src/_app/App.tsx @@ -11,6 +11,7 @@ import Toast from "../components/toast/Toast"; import { BSProvider } from "../contexts/bottom-sheet"; import { CartProvider } from "../contexts/cart"; import { ToastContext, ToastProvider } from "../contexts/toast"; +import AdminPage from "../pages/admin-page/AdminPage"; import CartPage from "../pages/cart-page/CartPage"; import HistoryPage from "../pages/history-page/HistoryPage"; import LoginPage from "../pages/login-page/LoginPage"; @@ -85,6 +86,7 @@ function App() { <Route path={APP_ROUTE.ORDER.SUCCESS} element={<SuccessPage connector={connector} />} /> <Route path={APP_ROUTE.ORDER.FAIL} element={<FailPage />} /> <Route path={APP_ROUTE.ORDER.CANCEL} element={<CancelPage />} /> + <Route path={APP_ROUTE.ADMIN} element={<AdminPage />} /> </Routes> </article> </Wrapper> diff --git a/src/_app/config/route.ts b/src/_app/config/route.ts index 2567471e705fbc57a4a98a5b855b9deca9180608..276c2b86cd790c283993e507716204f5455b9715 100644 --- a/src/_app/config/route.ts +++ b/src/_app/config/route.ts @@ -10,7 +10,8 @@ const APP_ROUTE = Object.freeze({ SUCCESS: '/order/success', FAIL: '/order/fail', CANCEL: '/order/cancel' - } + }, + ADMIN: '/admin' }); export default APP_ROUTE; diff --git a/src/common/instances/Connector.ts b/src/common/instances/Connector.ts index 57df47403735ff3dea0efb5e225d1d612672a1ea..bf5af4a8f2ff9725aa5e19e40b9057f4e20cd820 100644 --- a/src/common/instances/Connector.ts +++ b/src/common/instances/Connector.ts @@ -11,8 +11,8 @@ class Connector { this.setLoginInstance = setLogin; } - async login(payload?: any): Promise<boolean> { - const postRequest = await fetchData('/user/login', FETCH_METHOD.POST, payload); + async login<T>(payload?: any): Promise<boolean> { + const postRequest = await fetchData<T>('/user/login', FETCH_METHOD.POST, payload); if (postRequest.status === RESPONSE_STATUS.OK) { this.setLoginInstance(true); return true; diff --git a/src/pages/admin-page/AdminPage.module.css b/src/pages/admin-page/AdminPage.module.css new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/pages/admin-page/AdminPage.tsx b/src/pages/admin-page/AdminPage.tsx new file mode 100644 index 0000000000000000000000000000000000000000..85ab9aa5d88b822e06d1405703e1c7da6e3b4e9e --- /dev/null +++ b/src/pages/admin-page/AdminPage.tsx @@ -0,0 +1,5 @@ +const AdminPage = () => { + return (<div>admin</div>); +}; + +export default AdminPage; diff --git a/src/pages/login-page/LoginPage.tsx b/src/pages/login-page/LoginPage.tsx index 5700638bd128b9aed4a897d612207bbdedb2e980..e70595e2aacb25ecffc9815ec85465d536a8d1c2 100644 --- a/src/pages/login-page/LoginPage.tsx +++ b/src/pages/login-page/LoginPage.tsx @@ -5,25 +5,15 @@ import APP_ROUTE from "../../_app/config/route"; import S from './LoginPage.module.css'; +import type { LoginPagePostModel } from "./config/type"; import type Connector from "../../common/instances/Connector"; import type { FC } from "react"; -interface UserLoginPostModel { - createdDate: string; - email: string; - loginId: string; - name: string; - phone: string; - status: boolean; - _id: string; -} - interface Props { connector: Connector; } - const LoginPage: FC<Props> = ({ connector }) => { const [account, setAccount] = useState({ loginId: '', password: '' @@ -51,8 +41,7 @@ const LoginPage: FC<Props> = ({ connector }) => { const handleLogin = () => { void (async () => { try { - console.log(connector); - await connector.login(account); + await connector.login<LoginPagePostModel>(account); navigate(APP_ROUTE.MAIN); } catch (e) { console.error(e); diff --git a/src/pages/login-page/config/type.ts b/src/pages/login-page/config/type.ts new file mode 100644 index 0000000000000000000000000000000000000000..976a39a61bfa312e020bcfc28207f6988a95002a --- /dev/null +++ b/src/pages/login-page/config/type.ts @@ -0,0 +1,13 @@ +interface LoginPagePostModel { + createdDate: string; + email: string + loginId: string + name: string + phone: string + role: {isAdmin: boolean} + isAdmin: boolean + status: boolean + _id: string; +} + +export type { LoginPagePostModel };