diff --git a/app/(main)/test-logos/page.tsx b/app/(main)/test-logos/page.tsx new file mode 100644 index 0000000..5e69a9b --- /dev/null +++ b/app/(main)/test-logos/page.tsx @@ -0,0 +1,53 @@ +"use client"; + +import { SourceLogo } from "@/components/features/home/SourceLogo"; + +const SOURCES = [ + "velog", + "naver_d2", + "kakao_tech", + "toss_tech", + "oliveyoung_tech", + "stack overflow", + "medium", + "우아한형제들", + "unknown_source", +]; + +export default function TestLogosPage() { + return ( +
+

SourceLogo 테스트

+ + {/* size=17 — FeedCard */} +
+

+ size=17 (FeedCard 배지) +

+
+ {SOURCES.map((name) => ( +
+ + {name} +
+ ))} +
+
+ + {/* size=20 — 검색 아코디언 */} +
+

+ size=20 (검색 결과 아코디언) +

+
+ {SOURCES.map((name) => ( +
+ + {name} +
+ ))} +
+
+
+ ); +} diff --git a/components/features/home/SourceLogo.tsx b/components/features/home/SourceLogo.tsx index bf3c4f3..aab9d30 100644 --- a/components/features/home/SourceLogo.tsx +++ b/components/features/home/SourceLogo.tsx @@ -13,8 +13,12 @@ type LogoConfig = { const SOURCE_LOGO: Record = { velog: { src: "/icons/sources/velog.svg" }, - naver_d2: { src: "/icons/sources/naver.svg", bg: "#03C75A", innerPadding: 2 }, - kakao_tech: { src: "/icons/sources/kakao.svg", bg: "#FEE500", innerPadding: 2 }, + naver_d2: { src: "/icons/sources/naver.svg", bg: "#03C75A", innerPadding: 5 }, + kakao_tech: { + src: "/icons/sources/kakao.svg", + bg: "#FEE500", + innerPadding: 2, + }, toss_tech: { src: "/icons/sources/toss.png" }, oliveyoung_tech: { src: "/icons/sources/oliveyoung.svg" }, }; @@ -61,7 +65,11 @@ export function SourceLogo({ sourceName, size = 17 }: SourceLogoProps) { return ( {sourceName.charAt(0).toUpperCase()} diff --git a/lib/mock/home-search-results.ts b/lib/mock/home-search-results.ts index 03f5fe4..26ad2f9 100644 --- a/lib/mock/home-search-results.ts +++ b/lib/mock/home-search-results.ts @@ -166,6 +166,28 @@ const MOCK_SEARCH_RESULTS: SearchResultItem[] = [ tags: ["React", "Zustand", "Frontend", "State"], url: "/home/sr-015", }, + { + id: "sr-016", + title: "Why is my JavaScript async function not returning the expected value?", + sourceName: "stack overflow", + publishedAt: "2026-03-30", + thumbnailUrl: null, + summary: + "A deep dive into how async/await works under the hood and why returning a value from an async function always wraps it in a Promise. Top-voted answers explain the event loop and common pitfalls.", + tags: ["JavaScript", "Async", "Frontend"], + url: "/home/sr-016", + }, + { + id: "sr-017", + title: "The Pragmatic Engineer's Guide to System Design in 2026", + sourceName: "medium", + publishedAt: "2026-03-28", + thumbnailUrl: null, + summary: + "A practical walkthrough of system design principles covering scalability, availability, and consistency trade-offs. Includes real-world examples from distributed systems at scale.", + tags: ["SystemDesign", "Backend", "Architecture"], + url: "/home/sr-017", + }, ]; export function searchMockResults(query: string): SearchResultItem[] {