From 530c5fd17ea1340508f798fbb6056497d59a3603 Mon Sep 17 00:00:00 2001 From: Markus Thielker Date: Sat, 21 Dec 2024 15:09:28 +0100 Subject: [PATCH] Search results --- public/bluesky-logo.svg | 4 ++ public/linkedin-logo.png | Bin 0 -> 11876 bytes src/app/page.tsx | 4 ++ src/components/search-result.tsx | 62 +++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 public/bluesky-logo.svg create mode 100644 public/linkedin-logo.png create mode 100644 src/components/search-result.tsx diff --git a/public/bluesky-logo.svg b/public/bluesky-logo.svg new file mode 100644 index 0000000..c9ecb15 --- /dev/null +++ b/public/bluesky-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/linkedin-logo.png b/public/linkedin-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a9fe49b6a65e7feb6d54968533f8ee7182ee043e GIT binary patch literal 11876 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 Qq>sa|tK3p9Kw3QbU-TwN4FCWD literal 0 HcmV?d00001 diff --git a/src/app/page.tsx b/src/app/page.tsx index 67ea22b..6ff108f 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,6 +2,10 @@ import React from 'react'; import Image from 'next/image'; import { Input } from '@/components/ui/input'; import { Separator } from '@/components/ui/separator'; +import { Card, CardContent, CardDescription, CardHeader } from '@/components/ui/card'; +import Link from 'next/link'; +import { SearchResult } from '@/components/search-result'; +import { PublicUser } from '@/lib/github-user'; export default async function Home() { diff --git a/src/components/search-result.tsx b/src/components/search-result.tsx new file mode 100644 index 0000000..f18172f --- /dev/null +++ b/src/components/search-result.tsx @@ -0,0 +1,62 @@ +import Image from 'next/image'; +import Link from 'next/link'; + +interface SearchResultProps { + website: string; + website_icon_uri: string; + href: string; + title: string; + description: string; + links?: SearchResultLink[]; +} + +interface SearchResultLink { + text: string; + href: string; +} + +export function SearchResult( + { + website, + website_icon_uri, + href, + title, + description, + links, + }: SearchResultProps, +) { + + return ( +
+ +
+ {website}/ +
+
+ {website} + {href} +
+ +
+ {title} + {description} +
+ { + links && links.length > 0 && +
+ { + links.map(({ text, href }) => + + {text} + + ) + } +
+ } +
+ ); +}