File tree Expand file tree Collapse file tree 5 files changed +77
-16
lines changed
Expand file tree Collapse file tree 5 files changed +77
-16
lines changed Original file line number Diff line number Diff line change 11import "@emotion/react" ;
22import { Theme as MuiTheme } from "@mui/material/styles" ;
33
4+ declare module "@mui/material/styles" {
5+ interface PaletteColor {
6+ nonFocus ?: string ;
7+ }
8+ interface SimplePaletteColorOptions {
9+ nonFocus ?: string ;
10+ }
11+ }
12+
413declare module "@emotion/react" {
514 export interface Theme extends MuiTheme { }
615}
Original file line number Diff line number Diff line change 11import styled from "@emotion/styled" ;
22import { useMenu } from "../../../hooks/useMenu" ;
3+ import LanguageSelector from "../LanguageSelector" ;
4+ import LoginButton from "../LoginButton" ;
35
46interface SubMenuItem {
57 text : string ;
@@ -71,17 +73,8 @@ export default function Header({ menus }: HeaderProps) {
7173 </ HeaderNav >
7274 </ nav >
7375 < HeaderLeft >
74- < HeaderItem >
75- < img
76- src = "src/assets/langIcon.png"
77- width = { 25 }
78- height = { 25 }
79- alt = "langIcon"
80- />
81- < span > KO</ span >
82- < span > EN</ span >
83- </ HeaderItem >
84- < div > 로그인</ div >
76+ < LanguageSelector />
77+ < LoginButton />
8578 </ HeaderLeft >
8679 </ HeaderContainer >
8780 ) ;
@@ -133,11 +126,11 @@ const HeaderLeft = styled.div`
133126 gap: 1.125rem;
134127` ;
135128
136- const HeaderItem = styled . div `
137- display: flex;
138- align-items: center;
139- gap: 0.625rem;
140- ` ;
129+ // const HeaderItem = styled.div`
130+ // display: flex;
131+ // align-items: center;
132+ // gap: 0.625rem;
133+ // `;
141134
142135const SubMenu = styled . ul `
143136 position: absolute;
Original file line number Diff line number Diff line change 1+ import styled from "@emotion/styled" ;
2+ import { useState } from "react" ;
3+
4+ export default function LanguageSelector ( ) {
5+ const [ selectedLang , setSelectedLang ] = useState < "KO" | "EN" > ( "KO" ) ;
6+
7+ return (
8+ < LanguageContainer >
9+ < img
10+ src = "src/assets/langIcon.png"
11+ width = { 25 }
12+ height = { 25 }
13+ alt = "langIcon"
14+ />
15+ < LanguageItem
16+ isSelected = { selectedLang === "KO" }
17+ onClick = { ( ) => setSelectedLang ( "KO" ) }
18+ >
19+ KO
20+ </ LanguageItem >
21+ < LanguageItem
22+ isSelected = { selectedLang === "EN" }
23+ onClick = { ( ) => setSelectedLang ( "EN" ) }
24+ >
25+ EN
26+ </ LanguageItem >
27+ </ LanguageContainer >
28+ ) ;
29+ }
30+
31+ const LanguageContainer = styled . div `
32+ display: flex;
33+ align-items: center;
34+ gap: 0.6rem;
35+ ` ;
36+
37+ const LanguageItem = styled . div < { isSelected : boolean } > `
38+ cursor: pointer;
39+ color: ${ ( { isSelected, theme } ) =>
40+ isSelected ? theme . palette . primary . dark : theme . palette . primary . nonFocus } ;
41+ transition: color 0.2s ease;
42+ ` ;
Original file line number Diff line number Diff line change 1+ import styled from "@emotion/styled" ;
2+
3+ export default function LoginButton ( ) {
4+ return < LoginButtonStyled > 로그인</ LoginButtonStyled > ;
5+ }
6+
7+ const LoginButtonStyled = styled . button `
8+ background: none;
9+ border: none;
10+ color: ${ ( { theme } ) => theme . palette . primary . dark } ;
11+ font-size: 0.875rem;
12+ font-weight: 500;
13+ cursor: pointer;
14+ padding: 0;
15+ transition: color 0.2s ease;
16+ ` ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ export const muiTheme = createTheme({
1111 main : "#259299" ,
1212 light : "#B6D8D7" ,
1313 dark : "#126D7F" ,
14+ nonFocus : "#7AB2B3" ,
1415 } ,
1516 secondary : {
1617 main : "#259299" ,
You can’t perform that action at this time.
0 commit comments