diff --git a/src/pages/all-contribution-page.tsx b/src/pages/all-contribution-page.tsx index 46d1e5a..7842f2f 100644 --- a/src/pages/all-contribution-page.tsx +++ b/src/pages/all-contribution-page.tsx @@ -2,11 +2,40 @@ import { useEffect, useRef } from 'react'; import { useInfiniteQuery } from '@tanstack/react-query'; import { getAllContributions } from '../apis/contribution'; import logo from '../assets/icons/logo.svg'; +import benchIcon from '../assets/icons/bench.svg'; +import bottleIcon from '../assets/icons/bottle.svg'; +import clothesIcon from '../assets/icons/clothes.svg'; +import countIcon from '../assets/icons/count.svg'; +import flowerpotIcon from '../assets/icons/flowerpot.svg'; +import noteIcon from '../assets/icons/note.svg'; +import sneakersIcon from '../assets/icons/sneakers.svg'; +import toiletPaperIcon from '../assets/icons/toilet-paper.svg'; import LoadingSpinner from '../components/common/LoadingSpinner'; import type { ContributionFeed } from '../types/contribution'; const FEED_PAGE_SIZE = 10; +const contributionTargetIcons = [ + { keywords: ['휴지', '화장지', '두루마리'], icon: toiletPaperIcon }, + { keywords: ['노트', '공책'], icon: noteIcon }, + { keywords: ['유리병', '병'], icon: bottleIcon }, + { keywords: ['종량제', '쓰레기봉투', '쓰레기 봉투'], icon: countIcon }, + { keywords: ['화분'], icon: flowerpotIcon }, + { keywords: ['티셔츠', '티 셔츠', '의류', '옷'], icon: clothesIcon }, + { keywords: ['신발', '운동화'], icon: sneakersIcon }, + { keywords: ['벤치'], icon: benchIcon }, +]; + +const getContributionIcon = (feed: ContributionFeed) => { + if (feed.eventType !== 'REWARD_PROGRESS') { + return countIcon; + } + + return contributionTargetIcons.find(({ keywords }) => + keywords.some((keyword) => feed.targetName.includes(keyword)), + )?.icon ?? countIcon; +}; + interface UserCountBannerProps { userCount: number; summaryMessage: string; @@ -61,13 +90,16 @@ function UserCountBanner({ } function ContributionFeedCard({ feed }: { feed: ContributionFeed }) { + const contributionIcon = getContributionIcon(feed); + return (
diff --git a/src/pages/home-page.tsx b/src/pages/home-page.tsx index e16fddf..7ae9ce5 100644 --- a/src/pages/home-page.tsx +++ b/src/pages/home-page.tsx @@ -17,6 +17,8 @@ import Modal from '../components/common/Modal'; import { logout } from '../apis/auth'; import { clearAuthData } from '../apis/token'; import { getCommunityList } from '../apis/community'; +import HeartIcon from '../assets/icons/heart.svg'; +import CommentIcon from '../assets/icons/comment.svg'; const formatCategory = (categoryValue: string | number) => { const value = String(categoryValue); @@ -157,31 +159,37 @@ export default function HomePage() { 오늘의 커뮤니티 - )}