diff --git a/.github/workflows/docker-image.yaml b/.github/workflows/docker-image.yaml index ea6f341..c6adab1 100644 --- a/.github/workflows/docker-image.yaml +++ b/.github/workflows/docker-image.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + workflow_dispatch: jobs: build-and-deploy: diff --git a/README.md b/README.md index 74872fd..cdeb555 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # React + TypeScript + Vite +SEOHYEON + This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. Currently, two official plugins are available: @@ -18,11 +20,11 @@ export default tseslint.config({ languageOptions: { // other options... parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], + project: ["./tsconfig.node.json", "./tsconfig.app.json"], tsconfigRootDir: import.meta.dirname, }, }, -}) +}); ``` - Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` @@ -31,11 +33,11 @@ export default tseslint.config({ ```js // eslint.config.js -import react from 'eslint-plugin-react' +import react from "eslint-plugin-react"; export default tseslint.config({ // Set the react version - settings: { react: { version: '18.3' } }, + settings: { react: { version: "18.3" } }, plugins: { // Add the react plugin react, @@ -44,7 +46,7 @@ export default tseslint.config({ // other rules... // Enable its recommended rules ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, + ...react.configs["jsx-runtime"].rules, }, -}) +}); ``` diff --git a/index.html b/index.html index e4b78ea..63921d2 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,21 @@ - - + + - + - Vite + React + TS + 도들 +
diff --git a/src/App.tsx b/src/App.tsx index 2b027f9..ef43199 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -26,21 +26,23 @@ function App() { - }> - } /> - } /> + + }> + } /> + } /> + + }> + } /> + } /> + + } /> + } /> + } /> + } /> + } /> - } /> - } /> - } /> - } /> - } /> - } /> - - } /> - - }> - } /> + } /> + diff --git a/src/assets/image/bg_img1.png b/src/assets/image/bg_img1.png new file mode 100644 index 0000000..0332767 Binary files /dev/null and b/src/assets/image/bg_img1.png differ diff --git a/src/assets/image/landing/cloud.png b/src/assets/image/landing/cloud.png new file mode 100644 index 0000000..bf5e794 Binary files /dev/null and b/src/assets/image/landing/cloud.png differ diff --git a/src/assets/image/landing/icon1.png b/src/assets/image/landing/icon1.png new file mode 100644 index 0000000..e5efe95 Binary files /dev/null and b/src/assets/image/landing/icon1.png differ diff --git a/src/assets/image/landing/icon2.png b/src/assets/image/landing/icon2.png new file mode 100644 index 0000000..698570c Binary files /dev/null and b/src/assets/image/landing/icon2.png differ diff --git a/src/assets/image/landing/icon3.png b/src/assets/image/landing/icon3.png new file mode 100644 index 0000000..ffbdeb7 Binary files /dev/null and b/src/assets/image/landing/icon3.png differ diff --git a/src/assets/image/landing/third_page.png b/src/assets/image/landing/third_page.png new file mode 100644 index 0000000..8314028 Binary files /dev/null and b/src/assets/image/landing/third_page.png differ diff --git a/src/assets/image/navbar/ic_arrow_down.svg b/src/assets/image/navbar/ic_arrow_down.svg new file mode 100644 index 0000000..b20e69e --- /dev/null +++ b/src/assets/image/navbar/ic_arrow_down.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/image/navbar/ic_arrow_up.svg b/src/assets/image/navbar/ic_arrow_up.svg new file mode 100644 index 0000000..05e6438 --- /dev/null +++ b/src/assets/image/navbar/ic_arrow_up.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/image/navbar/ic_bell.svg b/src/assets/image/navbar/ic_bell.svg new file mode 100644 index 0000000..e9b76fc --- /dev/null +++ b/src/assets/image/navbar/ic_bell.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/image/navbar/ic_bell_with_alarm.svg b/src/assets/image/navbar/ic_bell_with_alarm.svg new file mode 100644 index 0000000..39cff70 --- /dev/null +++ b/src/assets/image/navbar/ic_bell_with_alarm.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/image/new_ic_logo.png b/src/assets/image/new_ic_logo.png new file mode 100644 index 0000000..875442b Binary files /dev/null and b/src/assets/image/new_ic_logo.png differ diff --git a/src/assets/image/vmCreate/debian.svg b/src/assets/image/vmCreate/debian.svg new file mode 100644 index 0000000..1b8104a --- /dev/null +++ b/src/assets/image/vmCreate/debian.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/image/vmManage/vmManageModal/copy.svg b/src/assets/image/vmManage/vmManageModal/copy.svg new file mode 100644 index 0000000..7efb637 --- /dev/null +++ b/src/assets/image/vmManage/vmManageModal/copy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/LandingInputField.tsx b/src/components/LandingInputField.tsx index 461d0cb..662cc7e 100644 --- a/src/components/LandingInputField.tsx +++ b/src/components/LandingInputField.tsx @@ -8,11 +8,11 @@ const LandingInputField = ({ return ( + /> ); }; diff --git a/src/components/NavBar.tsx b/src/components/NavBar.tsx deleted file mode 100644 index 3191619..0000000 --- a/src/components/NavBar.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { useContext } from "react"; -import { Link, useLocation, useNavigate } from "react-router-dom"; - -import ic_logo from "@/assets/image/ic_logo.svg"; -import AuthContext from "@/contexts/AuthContext"; - -import MuiBtn from "./button/MuiBtn"; -import "./NavBar.css"; - -const NavBar = () => { - const { isAuthenticated, logout, userNickname, userEmail } = - useContext(AuthContext)!; - const navigate = useNavigate(); - const location = useLocation(); - - const onClickLink = ( - event: React.MouseEvent, - path: string - ): void => { - if (location.pathname === path) { - event.preventDefault(); // 링크 기본 동작 block - window.location.reload(); // 새로고침 수행 - } else { - navigate(path); - } - }; - - return ( - - ); -}; - -export default NavBar; diff --git a/src/components/auth/Selector.tsx b/src/components/auth/Selector.tsx index 2be04d8..5908093 100644 --- a/src/components/auth/Selector.tsx +++ b/src/components/auth/Selector.tsx @@ -20,7 +20,7 @@ const Selector = ({ index = 1 }) => { } return ( -
+
select
); diff --git a/src/components/auth/textField/AuthTextFieldV2.tsx b/src/components/auth/textField/AuthTextFieldV2.tsx index 50135f8..1b75d74 100644 --- a/src/components/auth/textField/AuthTextFieldV2.tsx +++ b/src/components/auth/textField/AuthTextFieldV2.tsx @@ -1,13 +1,12 @@ import React, { useState } from "react"; -import remove from "../../../assets/image/input/remove.svg"; -import ImageBtn from "../../button/ImageBtn"; +import remove from "@/assets/image/input/remove.svg"; +import ImageBtn from "@/components/button/ImageBtn"; import CheckMessage from "./bottomMessages/CheckMessage"; import ErrorMessage from "./bottomMessages/ErrorMessage"; import { AuthTextFieldV2Props } from "./types/textField"; - import "./AuthTextFieldV2.css"; /** * 커스텀 TextField component (MUI TextField 기반) @@ -20,7 +19,7 @@ import "./AuthTextFieldV2.css"; * @param {boolean} props.errorMessageCondition - errorMessage 표시 여부 * @param {string} props.errorMessageContent - errorMessage 내용 */ -const AuthTextFieldV2: React.FC = ({ +const AuthTextFieldV2 = ({ label, style, onBlur, @@ -31,7 +30,7 @@ const AuthTextFieldV2: React.FC = ({ errorMessageCondition = false, errorMessageContent, ...props -}) => { +}: AuthTextFieldV2Props) => { const [showDeleteBtn, setShowDeleteBtn] = useState(false); let className = ""; @@ -49,9 +48,9 @@ const AuthTextFieldV2: React.FC = ({ } return ( -
+
{typeof label === "string" && ( -