From 470911698e5a4468c510a99dd352bfb68d9fbd00 Mon Sep 17 00:00:00 2001 From: Alam Guardin Date: Wed, 7 Aug 2024 23:03:49 -0500 Subject: refactor: add icons to links --- src/components/Link.astro | 55 ++++++++++++++++++++++++++++++------ src/components/List.astro | 23 +++++++++------ src/components/icons/Dribbble.astro | 1 + src/components/icons/Facebook.astro | 1 + src/components/icons/Instagram.astro | 1 + src/components/icons/Linkedin.astro | 1 + src/components/icons/Shop.astro | 1 + src/components/icons/Twitch.astro | 1 + src/components/icons/Url.astro | 1 + src/components/icons/X-twitter.astro | 1 + src/components/icons/Youtube.astro | 1 + src/data/user.json | 13 +++++++-- src/layouts/Layout.astro | 5 ++++ 13 files changed, 85 insertions(+), 20 deletions(-) create mode 100644 src/components/icons/Dribbble.astro create mode 100644 src/components/icons/Facebook.astro create mode 100644 src/components/icons/Instagram.astro create mode 100644 src/components/icons/Linkedin.astro create mode 100644 src/components/icons/Shop.astro create mode 100644 src/components/icons/Twitch.astro create mode 100644 src/components/icons/Url.astro create mode 100644 src/components/icons/X-twitter.astro create mode 100644 src/components/icons/Youtube.astro diff --git a/src/components/Link.astro b/src/components/Link.astro index efd75f6..5ff75a1 100644 --- a/src/components/Link.astro +++ b/src/components/Link.astro @@ -1,10 +1,52 @@ - +--- +import { componentIsHTMLElement } from "astro/runtime/server/render/dom.js"; +import Dribbble from "./icons/Dribbble.astro"; +import Facebook from "./icons/Facebook.astro"; +import Instagram from "./icons/Instagram.astro"; +import Linkedin from "./icons/Linkedin.astro"; +import Shop from "./icons/Shop.astro"; +import Twitch from "./icons/Twitch.astro"; +import Url from "./icons/Url.astro"; +import XTwitter from "./icons/X-twitter.astro"; +import Youtube from "./icons/Youtube.astro"; + +const icons = { + dribbble: Dribbble, + facebook: Facebook, + instagram: Instagram, + linkedin: Linkedin, + shop: Shop, + twitch: Twitch, + url: Url, + xtwitter: XTwitter, + youtube: Youtube +} + +interface Props { + icon: string; + title: string; + description: string; + url: string; +} + +const { icon, title, description, url } = Astro.props; +--- + + - + {icon === 'dribble' && } + {icon === 'facebook' && } + {icon === 'instagram' && } + {icon === 'linkedin' && } + {icon === 'shop' && } + {icon === 'twitch' && } + {icon === 'url' && } + {icon === 'xtwitter' && } + {icon === 'youtube' && } @@ -28,11 +70,6 @@ align-items: center; } - .link-icon svg { - width: 1.5rem; - fill: var(--zinc-50) - } - .link-title, .link-description { font-size: 1rem; } diff --git a/src/components/List.astro b/src/components/List.astro index 80af910..d03b0e0 100644 --- a/src/components/List.astro +++ b/src/components/List.astro @@ -1,16 +1,23 @@ --- import Link from "./Link.astro"; +import dataList from '../data/user.json'; + +const items = dataList.links; ---
- - - - - - - - + { + items.map((item) => { + return ( + + ) + }) + }
-- cgit v1.2.3