File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ const Arrow = ( ) => {
2+ return (
3+ < svg xmlns = "http://www.w3.org/2000/svg" width = "12" height = "13" viewBox = "0 0 12 13" fill = "none" >
4+ < path
5+ d = "M10.0152 4.24986C9.89675 4.13147 9.73615 4.06496 9.5687 4.06496C9.40125 4.06496 9.24065 4.13147 9.12222 4.24986L5.99626 7.37582L2.8703 4.24986C2.75119 4.13482 2.59167 4.07117 2.42609 4.07261C2.26051 4.07405 2.10212 4.14046 1.98504 4.25755C1.86795 4.37464 1.80154 4.53303 1.8001 4.69861C1.79866 4.86419 1.86231 5.02371 1.97734 5.14281L5.54978 8.71525C5.66821 8.83364 5.82881 8.90015 5.99626 8.90015C6.16371 8.90015 6.32431 8.83364 6.44274 8.71525L10.0152 5.14281C10.1336 5.02438 10.2001 4.86379 10.2001 4.69633C10.2001 4.52888 10.1336 4.36828 10.0152 4.24986Z"
6+ fill = "currentColor"
7+ />
8+ </ svg >
9+ ) ;
10+ } ;
11+ export default Arrow ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ export const Container = cva({
1111 width : 'fit-content' ,
1212 fontSize : '0.875rem' ,
1313 fontWeight : 400 ,
14+ cursor : 'pointer' ,
1415 } ,
1516 variants : {
1617 color : {
Original file line number Diff line number Diff line change 1+ import type { PropsWithChildren } from 'react' ;
2+
3+ import * as s from './style.css' ;
4+ import Arrow from '@/assets/icons/Arrow' ;
5+
6+ interface Props extends PropsWithChildren {
7+ active : boolean ;
8+ onClick ?: ( ) => void ;
9+ }
10+
11+ const SelectButton = ( { children, active, onClick } : Props ) => {
12+ // TODO: ์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋๊ฒ ์ ๋๋ฉ์ด์
์ถ๊ฐ
13+ return (
14+ < button className = { s . Container ( { color : active ? 'main' : 'gray' } ) } onClick = { onClick } >
15+ { children }
16+ < div className = { s . Icon ( { direction : active ? 'up' : 'down' } ) } >
17+ < Arrow />
18+ </ div >
19+ </ button >
20+ ) ;
21+ } ;
22+ export default SelectButton ;
Original file line number Diff line number Diff line change 1+ import { cva } from '@styled-system/css' ;
2+
3+ export const Container = cva ( {
4+ base : {
5+ borderRadius : 'full' ,
6+ padding : '0.375rem 0.375rem 0.375rem 0.625rem' ,
7+ display : 'flex' ,
8+ alignItems : 'center' ,
9+ justifyContent : 'center' ,
10+ gap : '0.25rem' ,
11+ fontSize : '0.75rem' ,
12+ fontWeight : 500 ,
13+ cursor : 'pointer' ,
14+ color : '100' ,
15+ } ,
16+ variants : {
17+ color : {
18+ main : {
19+ border : '1px solid' ,
20+ borderColor : 'main-54' ,
21+ bgColor : 'main-26' ,
22+ } ,
23+ gray : {
24+ bgColor : 'systemGray5' ,
25+ } ,
26+ } ,
27+ } ,
28+ } ) ;
29+
30+ export const Icon = cva ( {
31+ base : {
32+ color : '54' ,
33+ } ,
34+ variants : {
35+ direction : {
36+ up : {
37+ transform : 'rotate(180deg)' ,
38+ } ,
39+ down : {
40+ transform : 'rotate(0deg)' ,
41+ } ,
42+ } ,
43+ } ,
44+ } ) ;
Original file line number Diff line number Diff line change 1- import { useFlow } from '@/libs/routes/stack ' ;
1+ import { useState } from 'react ' ;
22import type { ActivityComponentType } from '@stackflow/react' ;
3+ import { useFlow } from '@/libs/routes/stack' ;
34
45// CSS ์ฌ์ฉํ๋ ์ปดํฌ๋ํธ์์๋ ์ด๋ฐ ์์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ
56import * as s from './style.css' ;
67
78import AppScreenWithSafeArea from '@/common/components/AppScreenWithSafeArea' ;
89import Chip from '@/common/components/Chip' ;
10+ import SelectButton from '@/common/components/SelectButton' ;
911import TestAPIButton from '@/common/components/TestAPIButton' ;
1012
1113const HomePage : ActivityComponentType = ( ) => {
1214 const { push } = useFlow ( ) ;
15+ const [ active , setActive ] = useState ( false ) ;
1316 return (
1417 < AppScreenWithSafeArea >
1518 < h1 className = { s . Title } > ๋ฆฌํผ์นด ์งฑ</ h1 >
@@ -22,6 +25,9 @@ const HomePage: ActivityComponentType = () => {
2225 < button onClick = { ( ) => push ( 'PostPage' , { } ) } > ์ด๋</ button >
2326 </ div >
2427 < Chip color = "main" > ์ถ๊ตฌ</ Chip >
28+ < SelectButton active = { active } onClick = { ( ) => setActive ( ! active ) } >
29+ ์ข
๋ชฉ
30+ </ SelectButton >
2531 </ AppScreenWithSafeArea >
2632 ) ;
2733} ;
You canโt perform that action at this time.
0 commit comments