File tree Expand file tree Collapse file tree 8 files changed +110
-0
lines changed
Expand file tree Collapse file tree 8 files changed +110
-0
lines changed Original file line number Diff line number Diff line change 1+ import { cn } from "@/lib/utils" ;
2+ import { useState } from "react" ;
3+
4+ interface HoverTriggerProps {
5+ className ?: string ;
6+ children : React . ReactNode ;
7+ }
8+
9+ export default function HoverTrigger ( {
10+ className,
11+ children,
12+ } : HoverTriggerProps ) {
13+ const [ isHovered , setIsHovered ] = useState ( false ) ;
14+
15+ const handleMouseEnter = ( ) => {
16+ setIsHovered ( true ) ;
17+ } ;
18+
19+ const handleMouseLeave = ( ) => {
20+ setIsHovered ( false ) ;
21+ } ;
22+
23+ return (
24+ < div
25+ className = { cn ( "h-screen" , className ) }
26+ onMouseEnter = { handleMouseEnter }
27+ onMouseLeave = { handleMouseLeave }
28+ >
29+ < div
30+ className = { cn (
31+ "transition-transform" ,
32+ isHovered ? "translate-x-0" : "-translate-x-full" ,
33+ ) }
34+ >
35+ { children }
36+ </ div >
37+ </ div >
38+ ) ;
39+ }
Original file line number Diff line number Diff line change 1+ import logo from "/logo.png?url" ;
2+
3+ export default function LogoBtn ( ) {
4+ return (
5+ < div className = "h-8 w-8 rounded-md bg-slate-700 p-2" >
6+ < img src = { logo } />
7+ </ div >
8+ ) ;
9+ }
Original file line number Diff line number Diff line change 1+ interface WorkspaceNavProps {
2+ imageUrl : string ;
3+ workspaceTitle : string ;
4+ }
5+
6+ export default function WorkspaceNav ( {
7+ imageUrl,
8+ workspaceTitle,
9+ } : WorkspaceNavProps ) {
10+ return (
11+ < div className = "flex flex-row items-center justify-center gap-2" >
12+ < div className = "h-5 w-5 rounded-md" >
13+ < img src = { imageUrl } />
14+ </ div >
15+ < h1 className = "text-lg font-bold" > { workspaceTitle } </ h1 >
16+ </ div >
17+ ) ;
18+ }
Original file line number Diff line number Diff line change 1+ const noteTitles = [ "🌳 그라운드 룰" , "🚩 커밋 컨벤션" , "🗂️ 데일리 스크럼 " ] ;
2+
3+ export default function NoteList ( ) {
4+ return (
5+ < div className = "flex flex-col gap-2" >
6+ { noteTitles . map ( ( title ) => (
7+ < div > { title } </ div >
8+ ) ) }
9+ </ div >
10+ ) ;
11+ }
Original file line number Diff line number Diff line change 1+ import VerticalDivider from "@/components/commons/divider/VerticalDivider" ;
2+ import WorkspaceNav from "@/components/WorkspaceNav" ;
3+ import LogoBtn from "@/components/LogoBtn" ;
4+
5+ import logo from "/logo.png?url" ;
6+
7+ export default function TopNav ( ) {
8+ return (
9+ < div className = "flex items-center gap-2" >
10+ < LogoBtn />
11+ < VerticalDivider className = "h-3" />
12+ < WorkspaceNav imageUrl = { logo } workspaceTitle = "프로젝트 Web15" />
13+ </ div >
14+ ) ;
15+ }
Original file line number Diff line number Diff line change 1+ import NoteList from "@/components/sidebar/NoteList" ;
2+ import TopNav from "@/components/sidebar/TopNav" ;
3+ import HorizontalDivider from "@/components/commons/divider/HorizontalDivider" ;
4+
5+ export default function Sidebar ( ) {
6+ return (
7+ < div className = "w-64 rounded-lg bg-white p-2" >
8+ < div className = "font-pretendard text-md flex flex-col gap-3 bg-white p-2 text-black" >
9+ < TopNav />
10+ < HorizontalDivider />
11+ < NoteList />
12+ </ div >
13+ </ div >
14+ ) ;
15+ }
16+
17+ // truncate
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ export default {
99 pretendard : [ "Pretendard" ] ,
1010 } ,
1111 colors : {
12+ ...colors ,
1213 divider : colors . neutral [ "200" ] ,
1314 } ,
1415 extend : { } ,
You can’t perform that action at this time.
0 commit comments