Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"preview": "vite preview"
},
"dependencies": {
"@supabase/supabase-js": "^2.50.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"sass": "^1.89.2",
Expand Down
23 changes: 13 additions & 10 deletions src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,23 @@ import Layout from "./component/Layout";
import Main from "./component/Main";
import Search from "./component/Search";
import Login from "./component/Login";
import Join from "./component/Join";
import SignUp from "./component/Signup";
import { UserProvider } from "./contexts/UserContext";

function App() {
return (
<>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Main />} />
<Route path="/details/:movieId" element={<Detail />} />
<Route path="/search" element={<Search />} />
<Route path="/login" element={<Login />} />
<Route path="/join" element={<Join />} />
</Route>
</Routes>
<UserProvider>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Main />} />
<Route path="/details/:movieId" element={<Detail />} />
<Route path="/search" element={<Search />} />
<Route path="/login" element={<Login />} />
<Route path="/signup" element={<SignUp />} />
</Route>
</Routes>
</UserProvider>
</>
);
}
Expand Down
43 changes: 43 additions & 0 deletions src/App.scss
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,38 @@ nav {
border: 1px solid #555555;
background: #161616;
}

.profile {
position: relative;
width: 38px;
height: 38px;
border-radius: 50%;
background-color: #5914c7;
> div {
width: 150px;
height: 0px;
margin-top: 55px;
position: absolute;
right: 0;
overflow: hidden;
transition: 0.5s;
}
&:hover {
> div {
height: 200px;
}
}
ul {
background-color: $bg-gray;
padding: 20px;
li {
margin: 10px 0;
a {
background-color: transparent;
}
}
}
}
}

main {
Expand Down Expand Up @@ -226,3 +258,14 @@ main {
}
}
}

.error-message {
color: red;
font-size: 0.8rem;
margin-top: 4px;
}

.input-error {
border: 1px solid red;
outline: none;
}
28 changes: 28 additions & 0 deletions src/component/Input.jsx
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기저기서 사용되는 공통 컴포넌트는 component 폴더 안에 common 폴더를 추가하셔서 그 안에서 관리해주시면 더 좋습니다!

/component/common

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
export default function Input({
label,
type = "text",
name,
value,
onChange,
error,
placeholder,
}) {
// 유효성 검사를 위한 value=현재값, onChange=입력된 값을 외부에전달
return (
<>
<div>
<label htmlFor={name}>{label}</label>
<input
id={name}
name={name}
type={type}
value={value}
placeholder={placeholder}
onChange={onChange}
className={error ? "input-error" : ""}
/>
{error && <p className="error-message">{error}</p>}
</div>
</>
);
}
27 changes: 0 additions & 27 deletions src/component/Join.jsx

This file was deleted.

Loading