File tree Expand file tree Collapse file tree 6 files changed +132
-1
lines changed
Expand file tree Collapse file tree 6 files changed +132
-1
lines changed 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 1+ import type { PropsWithChildren } from 'react' ;
2+ import * as s from './style.css' ;
3+
4+ interface Props extends PropsWithChildren {
5+ color ?: 'gray' | 'main' ;
6+ onClick ?: ( ) => void ;
7+ }
8+ const Chip = ( { children, color = 'gray' , onClick } : Props ) => {
9+ return (
10+ < div className = { s . Container ( { color } ) } onClick = { onClick } >
11+ { children }
12+ </ div >
13+ ) ;
14+ } ;
15+ export default Chip ;
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+ padding : '0.5rem 0.75rem' ,
6+ display : 'flex' ,
7+ alignItems : 'center' ,
8+ justifyContent : 'center' ,
9+ gap : '0.25rem' ,
10+ rounded : 'full' ,
11+ width : 'fit-content' ,
12+ fontSize : '0.875rem' ,
13+ fontWeight : 400 ,
14+ cursor : 'pointer' ,
15+ } ,
16+ variants : {
17+ color : {
18+ main : {
19+ backgroundColor : 'main-26' ,
20+ border : '1px solid' ,
21+ borderColor : 'main-54' ,
22+ color : '100' ,
23+ } ,
24+ gray : {
25+ backgroundColor : 'systemGray5' ,
26+ color : '80' ,
27+ } ,
28+ } ,
29+ } ,
30+ } ) ;
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' ;
9+ import Chip from '@/common/components/Chip' ;
10+ import SelectButton from '@/common/components/SelectButton' ;
811import TestAPIButton from '@/common/components/TestAPIButton' ;
912import useGetIsLogin from '@/common/hooks/apis/useGetIsLogin' ;
1013
1114const HomePage : ActivityComponentType = ( ) => {
1215 const { push } = useFlow ( ) ;
1316 const { data : isLogin } = useGetIsLogin ( ) ;
17+ const [ active , setActive ] = useState ( false ) ;
18+
1419 return (
1520 < AppScreenWithSafeArea >
1621 < div className = { s . Wrapper } >
@@ -26,6 +31,10 @@ const HomePage: ActivityComponentType = () => {
2631 ) }
2732 < button onClick = { ( ) => push ( 'PostPage' , { } ) } > ์ด๋</ button >
2833 </ div >
34+ < Chip color = "main" > ์ถ๊ตฌ</ Chip >
35+ < SelectButton active = { active } onClick = { ( ) => setActive ( ! active ) } >
36+ ์ข
๋ชฉ
37+ </ SelectButton >
2938 </ AppScreenWithSafeArea >
3039 ) ;
3140} ;
You canโt perform that action at this time.
0 commit comments