File tree Expand file tree Collapse file tree 8 files changed +96
-6
lines changed
onBoarding/components/funnel/step Expand file tree Collapse file tree 8 files changed +96
-6
lines changed Original file line number Diff line number Diff line change 1+ import { Icon } from '@pinback/design-system/icons' ;
2+ import { Balloon } from '@shared/components/balloon/Balloon' ;
3+
14const JobPins = ( ) => {
2- return < div > 관심 직무 핀 페이지</ div > ;
5+ return (
6+ < div >
7+ { ' ' }
8+ < Balloon variant = "main" side = "bottom" >
9+ < div className = "text-lg font-semibold" > 치삐가 방금</ div >
10+
11+ < div className = "text-sm opacity-90" > 도토리 1개를 모았어요!</ div >
12+ </ Balloon >
13+ < Balloon variant = "gray" side = "left" onClose = { ( ) => alert ( '닫힘' ) } >
14+ < div className = "text-lg font-semibold" > 치삐가 방금</ div >
15+
16+ < div className = "text-sm opacity-90" > 도토리 1개를 모았어요!</ div >
17+ </ Balloon >
18+ < Balloon variant = "gray" side = "left" >
19+ < Icon name = "ic_info" size = { 16 } />
20+ < div className = "text-sm opacity-90" > 도토리 1개를 모았어요!</ div >
21+ </ Balloon >
22+ < Balloon variant = "main" side = "bottom" >
23+ < div className = "flex items-center gap-3" >
24+ { /* 캐릭터 이미지 */ }
25+ < Icon name = "chippi_profile" size = { 40 } />
26+
27+ { /* 텍스트 영역 */ }
28+ < div className = "flex flex-col" >
29+ < div className = "text-[18px] font-semibold" > 치삐가 방금</ div >
30+ < div className = "text-[16px]" > 도토리 1개를 모았어요!</ div >
31+ </ div >
32+ </ div >
33+ </ Balloon >
34+ </ div >
35+ ) ;
336} ;
437
538export default JobPins ;
Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ const Login = () => {
3535 </ p >
3636
3737 < button
38+ type = "button"
3839 onClick = { handleGoogleLogin }
3940 className = "sub2-sb flex h-[5.2rem] w-[29.8rem] items-center justify-between gap-3 rounded-full border border-gray-100 bg-white px-[2rem]"
4041 >
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ import {
1313 useDeleteRemindArticle ,
1414 usePutArticleReadStatus ,
1515} from '@shared/apis/queries' ;
16- import Tooltip from '@shared/components/tooltip/Tooltip ' ;
16+ import TooltipCard from '@shared/components/tooltipCard/TooltipCard ' ;
1717import ArticlesLoadingBoundary from '@shared/components/articlesLoadingBoundary/ArticlesLoadingBoundary' ;
1818import ArticlesErrorBoundary from '@shared/components/articlesErrorBoundary/ArticlesErrorBoundary' ;
1919import { ErrorBoundary } from 'react-error-boundary' ;
@@ -87,7 +87,7 @@ const MyBookmark = () => {
8787 < p className = "head3 text-main500" > { category || '' } </ p >
8888 </ div >
8989
90- < Tooltip />
90+ < TooltipCard />
9191
9292 < Suspense fallback = { < ArticlesLoadingBoundary /> } >
9393 < ErrorBoundary FallbackComponent = { ArticlesErrorBoundary } >
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ const SocialLoginStep = () => {
3030 </ p >
3131
3232 < button
33+ type = "button"
3334 onClick = { handleGoogleLogin }
3435 className = "sub2-sb flex h-[5.2rem] w-[22.7rem] items-center justify-between gap-3 rounded-full border border-gray-100 bg-white px-[2rem]"
3536 >
Original file line number Diff line number Diff line change @@ -22,7 +22,7 @@ import { useQueryClient } from '@tanstack/react-query';
2222import NoRemindArticles from './components/noRemindArticles/NoRemindArticles' ;
2323import FetchCard from './components/fetchCard/FetchCard' ;
2424import { useInfiniteScroll } from '@shared/hooks/useInfiniteScroll' ;
25- import Tooltip from '@shared/components/tooltip/Tooltip ' ;
25+ import TooltipCard from '@shared/components/tooltipCard/TooltipCard ' ;
2626import Footer from './components/footer/Footer' ;
2727
2828const Remind = ( ) => {
@@ -138,7 +138,7 @@ const Remind = () => {
138138 isActive = { activeBadge === 'read' }
139139 />
140140 </ div >
141- < Tooltip />
141+ < TooltipCard />
142142
143143 { articlesToDisplay . length > 0 ? (
144144 < div
Original file line number Diff line number Diff line change 1+ import { Icon } from '@pinback/design-system/icons' ;
2+ import { cn } from '@pinback/design-system/utils' ;
3+ import { ReactNode } from 'react' ;
4+
5+ type BalloonVariant = 'gray' | 'main' ;
6+
7+ interface BalloonProps {
8+ variant ?: BalloonVariant ;
9+ side ?: 'top' | 'bottom' | 'left' | 'right' ;
10+ onClose ?: ( ) => void ;
11+ children : ReactNode ;
12+ }
13+
14+ export function Balloon ( {
15+ variant = 'gray' ,
16+ side = 'bottom' ,
17+ onClose,
18+ children,
19+ } : BalloonProps ) {
20+ const variantStyle = {
21+ gray : 'bg-gray900 text-white' ,
22+ main : 'bg-main500 text-white' ,
23+ } ;
24+
25+ return (
26+ < div className = "relative inline-block" >
27+ < div
28+ className = { cn (
29+ 'relative flex items-start gap-3 rounded-[4px] p-[1.2rem]' ,
30+ variantStyle [ variant ]
31+ ) }
32+ >
33+ < div className = "flex-1" > { children } </ div >
34+
35+ { onClose && (
36+ < button type = "button" onClick = { onClose } >
37+ < Icon name = "ic_close" size = { 16 } />
38+ </ button >
39+ ) }
40+ </ div >
41+
42+ { /* 꼬리 */ }
43+ < div
44+ className = { cn (
45+ 'absolute h-[12px] w-[12px] rotate-45' ,
46+ variantStyle [ variant ] ,
47+ side === 'bottom' && '-bottom-1 left-1/2 -translate-x-1/2' ,
48+ side === 'top' && '-top-1 left-1/2 -translate-x-1/2' ,
49+ side === 'left' && '-left-1 top-1/2 -translate-y-1/2' ,
50+ side === 'right' && '-right-1 top-1/2 -translate-y-1/2'
51+ ) }
52+ />
53+ </ div >
54+ ) ;
55+ }
File renamed without changes.
Original file line number Diff line number Diff line change 11import { Icon } from '@pinback/design-system/icons' ;
22import InfoCard from './InfoCard' ;
33
4- export default function Tooltip ( ) {
4+ export default function TooltipCard ( ) {
55 return (
66 < div className = "mt-[0.8rem] flex items-center" >
77 < p className = "body3-r text-font-gray-3" >
You can’t perform that action at this time.
0 commit comments