diff --git a/apps/client/src/pages/jobPins/JobPins.tsx b/apps/client/src/pages/jobPins/JobPins.tsx index 326b7f9f..74347057 100644 --- a/apps/client/src/pages/jobPins/JobPins.tsx +++ b/apps/client/src/pages/jobPins/JobPins.tsx @@ -1,36 +1,44 @@ -import { Icon } from '@pinback/design-system/icons'; -import { Balloon } from '@shared/components/balloon/Balloon'; +import { Card } from '@pinback/design-system/ui'; +import Footer from '@pages/myBookmark/components/footer/Footer'; + +const MOCK_JOB_PINS = Array.from({ length: 30 }, (_, index) => ({ + id: index + 1, + title: '텍스트텍스트텍스트텍스트텍스트텍스트텍스트', + content: '서브텍스트입니다서브텍스트입니다서브텍스트입니다서브텍스트입니다', + category: '카테고리명', + categoryColor: 'COLOR7' as const, + variant: 'save' as const, + nickname: index % 3 === 0 ? '구글닉네임명' : '', +})); const JobPins = () => { return ( -
- {' '} - -
치삐가 방금
- -
도토리 1개를 모았어요!
-
- alert('닫힘')}> -
치삐가 방금
+
+
+

관심 직무 핀

+

기획자

+
+

+ 같은 직무의 사람들이 저장한 아티클을 살펴봐요. 선택한 직무를 기준으로 + 최신 핀이 업데이트 돼요! +

-
도토리 1개를 모았어요!
- - - -
도토리 1개를 모았어요!
-
- -
- {/* 캐릭터 이미지 */} - +
+ {MOCK_JOB_PINS.map((pin) => ( + + ))} +
- {/* 텍스트 영역 */} -
-
치삐가 방금
-
도토리 1개를 모았어요!
-
-
-
+
); }; diff --git a/packages/design-system/src/components/card/Card.stories.tsx b/packages/design-system/src/components/card/Card.stories.tsx index f6668132..e8e48eda 100644 --- a/packages/design-system/src/components/card/Card.stories.tsx +++ b/packages/design-system/src/components/card/Card.stories.tsx @@ -33,6 +33,15 @@ const meta: Meta = { control: 'text', if: { arg: 'type', eq: 'bookmark' }, }, + variant: { + control: 'inline-radio', + options: ['default', 'save'], + if: { arg: 'type', eq: 'bookmark' }, + }, + nickname: { + control: 'text', + if: { arg: 'variant', eq: 'save' }, + }, }, }; @@ -56,6 +65,7 @@ export const BookMark: Story = { name: 'type: bookmark', args: { type: 'bookmark', + variant: 'default', title: '북마크 카드 타이틀', content: '북마크 컨텐츠 내용입니다.', category: '디자인', @@ -65,6 +75,20 @@ export const BookMark: Story = { }, }; +export const BookMarkSave: Story = { + name: 'type: bookmark (save)', + args: { + type: 'bookmark', + variant: 'save', + title: '북마크 카드 타이틀', + content: '북마크 컨텐츠 내용입니다.', + category: '디자인', + nickname: '하비', + imageUrl: + 'https://images.unsplash.com/photo-1555949963-ff9fe0c870eb?q=80&w=2070&auto=format&fit=crop', + }, +}; + export const LongTextSideBySide: Story = { name: 'case: Long Text', render: () => ( @@ -79,6 +103,7 @@ export const LongTextSideBySide: Story = { /> void; onOptionsClick?: (e: React.MouseEvent) => void; } @@ -20,10 +23,15 @@ const MyBookmarkCard = ({ category, categoryColor, imageUrl, + variant = 'default', date, + nickname, onClick, onOptionsClick, }: MyBookmarkCardProps) => { + const displayNickname = + nickname && nickname.trim().length > 0 ? nickname : '도토리'; + return (
@@ -41,17 +49,19 @@ const MyBookmarkCard = ({

{title}

- + {variant !== 'save' && ( + + )}

@@ -62,7 +72,16 @@ const MyBookmarkCard = ({ )} -

{date}

+ {variant === 'save' ? ( +
+

+ {`(${displayNickname})님의 핀`} +

+ +
+ ) : ( +

{date}

+ )}
); diff --git a/packages/design-system/src/icons/iconNames.ts b/packages/design-system/src/icons/iconNames.ts index 894a3353..df18bf77 100644 --- a/packages/design-system/src/icons/iconNames.ts +++ b/packages/design-system/src/icons/iconNames.ts @@ -18,6 +18,7 @@ export const iconNames = [ 'ic_details_disable', 'ic_extension', 'ic_info', + 'ic_memo', 'ic_pin', 'ic_pin_active', 'ic_pin_disable', diff --git a/packages/design-system/src/icons/source/ic_memo.svg b/packages/design-system/src/icons/source/ic_memo.svg new file mode 100644 index 00000000..3fab4c71 --- /dev/null +++ b/packages/design-system/src/icons/source/ic_memo.svg @@ -0,0 +1,7 @@ + + + + + + +