From d511ce366331689cd0b025784f8f1924b31b34f6 Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Thu, 19 Dec 2024 21:26:56 +0100 Subject: [PATCH] chore: some refactoring and added phosphor icons --- bun.lockb | Bin 312542 -> 312914 bytes package.json | 1 + src/client/ComboBox.tsx | 4 +++- src/client/Icon.tsx | 21 +++++++++++++++++++++ src/client/UtentiPage.tsx | 30 ++++++++++++++++++++++-------- src/components/Bubble.astro | 18 +++++++----------- src/components/PhosphorIcon.astro | 21 +++++++++++++++++++++ src/data/macchinisti.yaml | 2 ++ src/pages/macchinisti.astro | 24 +++++++++--------------- src/styles/components.scss | 23 ++++++++++++++++++++--- src/styles/pages.scss | 2 +- 11 files changed, 107 insertions(+), 39 deletions(-) create mode 100644 src/client/Icon.tsx create mode 100644 src/components/PhosphorIcon.astro diff --git a/bun.lockb b/bun.lockb index bd805e6bf07c6528b14434877ab2274f66383e03..179aaa886c04742f00ecf22b5f222c0867d5e347 100755 GIT binary patch delta 50736 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 delta 50690 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 ZSLS#?AEztJ`bz)tCuK3O*#7kX{{a%ub6o%c diff --git a/package.json b/package.json index 3f3d964..86d2a54 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@fontsource/source-code-pro": "^5.0.16", "@fontsource/source-sans-pro": "^5.0.8", "@fontsource/space-mono": "^5.0.20", + "@phosphor-icons/core": "^2.1.1", "@preact/signals": "^1.3.0", "@types/jsdom": "^21.1.7", "astro": "^4.15.11", diff --git a/src/client/ComboBox.tsx b/src/client/ComboBox.tsx index be2b008..cc62c8f 100644 --- a/src/client/ComboBox.tsx +++ b/src/client/ComboBox.tsx @@ -1,6 +1,7 @@ import { type ComponentChildren } from 'preact' import { useState, useRef, useEffect } from 'preact/hooks' import { clsx, isMobile } from './lib/util' +import { PhosphorIcon } from './Icon' export const ComboBox = ({ value, @@ -40,7 +41,8 @@ export const ComboBox = ({ >
setOpen(!open)}>
{children[value]}
- expand_more + {/* expand_more */} +
{open && (
(`node_modules/@phosphor-icons/core/assets/light/*.svg`, { + eager: true, + }) + ).map(([path, module]) => [path.split('/').pop()!.split('.')[0].replace('-light', ''), module]) +) + +type Props = { + name: string +} + +export const PhosphorIcon = ({ name }: Props) => { + const icon = icons[name] + + if (!icon) { + throw new Error(`Icon "${name}" not found`) + } + + return {name} +} diff --git a/src/client/UtentiPage.tsx b/src/client/UtentiPage.tsx index 8a71db9..d687b44 100644 --- a/src/client/UtentiPage.tsx +++ b/src/client/UtentiPage.tsx @@ -3,6 +3,7 @@ import Fuse from 'fuse.js' import { useEffect } from 'preact/hooks' import { ShowMore } from './Paginate' import { ComboBox } from './ComboBox' +import { PhosphorIcon } from './Icon' type User = { uid: string @@ -11,15 +12,15 @@ type User = { const FILTERS = { utenti: { - icon: 'person', + icon: 'user', label: 'Utenti', }, macchinisti: { - icon: 'construction', + icon: 'wrench', label: 'Macchinisti', }, rappstud: { - icon: 'account_balance', + icon: 'bank', label: 'Rappresentanti', }, } @@ -105,7 +106,9 @@ export const UtentiPage = () => { Object.entries(FILTERS).map(([k, v]) => [ k, <> - {v.icon} {v.label} + {/* {v.icon} {v.label} */} + + {v.label} , ]) )} @@ -117,7 +120,8 @@ export const UtentiPage = () => { onInput={e => ($searchText.value = e.currentTarget.value)} value={$searchText.value} /> - search + {/* search */} +
@@ -126,13 +130,22 @@ export const UtentiPage = () => { {poissonUser => ( diff --git a/src/components/Bubble.astro b/src/components/Bubble.astro index 625c2bc..bf62b95 100644 --- a/src/components/Bubble.astro +++ b/src/components/Bubble.astro @@ -1,14 +1,11 @@ --- -import iconGithub from 'lucide-static/icons/github.svg' -import iconLinkedin from 'lucide-static/icons/linkedin.svg' -import iconGlobe from 'lucide-static/icons/globe.svg' -import iconMail from 'lucide-static/icons/mail.svg' +import PhosphorIcon from './PhosphorIcon.astro' -const ICONS_MAP = { - github: iconGithub, - linkedin: iconLinkedin, - website: iconGlobe, - mail: iconMail, +const ICONS_MAP: Record = { + github: 'github-logo', + linkedin: 'linkedin-logo', + website: 'globe', + mail: 'mailbox', } type Props = { @@ -38,8 +35,7 @@ const { image, fullName, entranceDate, exitDate, description, social } = Astro.p diff --git a/src/components/PhosphorIcon.astro b/src/components/PhosphorIcon.astro new file mode 100644 index 0000000..9c5fb65 --- /dev/null +++ b/src/components/PhosphorIcon.astro @@ -0,0 +1,21 @@ +--- +import { Image } from 'astro:assets' + +type Props = { + name: string +} + +const { name } = Astro.props + +const icons = Object.fromEntries( + Object.entries( + import.meta.glob<{ default: ImageMetadata }>(`node_modules/@phosphor-icons/core/assets/light/*.svg`) + ).map(([path, module]) => [path.split('/').pop()!.split('.')[0].replace('-light', ''), module]) +) + +if (!icons[name]) { + throw new Error(`Icon "${name}" not found`) +} +--- + +{name} diff --git a/src/data/macchinisti.yaml b/src/data/macchinisti.yaml index 40154b6..ac25045 100644 --- a/src/data/macchinisti.yaml +++ b/src/data/macchinisti.yaml @@ -1,3 +1,5 @@ +# the schema of this file in "@/files.d.ts" + - fullName: Antonio De Lucreziis entranceDate: 2019 description: | diff --git a/src/pages/macchinisti.astro b/src/pages/macchinisti.astro index 7d6eb9d..27fa7c3 100644 --- a/src/pages/macchinisti.astro +++ b/src/pages/macchinisti.astro @@ -8,27 +8,21 @@ import macchinisti from '@/data/macchinisti.yaml' macchinisti.sort((a, b) => b.entranceDate - a.entranceDate) // Import all images from assets folder -const images: Record = Object.fromEntries( - await Promise.all( - Object.entries(import.meta.glob('@/assets/macchinisti/*')).map(async ([path, module]) => [ - path.split('/').pop()!.split('.')[0], - // @ts-ignore - (await module()).default, - ]) - ) +const images = Object.fromEntries( + Object.entries( + import.meta.glob<{ default: ImageMetadata }>('@/assets/macchinisti/*', { + eager: true, + }) + ).map(([path, module]) => [path.split('/').pop()!.split('.')[0], module]) ) -console.log(macchinisti) -console.log(images) - const currentMacchinisti = macchinisti.filter(macchinista => !macchinista.exitDate) const pastMacchinisti = macchinisti.filter(macchinista => macchinista.exitDate) -const getMacchinistaPicture = (fullName: string): ImageMetadata => { +const getMacchinistaPicture = (fullName: string) => { const macchinistaId = fullName.toLowerCase().replace(/\s+/g, '-') - console.log(macchinistaId) - - return images[macchinistaId] ?? images['fallback'] + const { default: image } = images[macchinistaId] ?? images['fallback'] + return image } --- diff --git a/src/styles/components.scss b/src/styles/components.scss index fbcfc5f..3e6dc89 100644 --- a/src/styles/components.scss +++ b/src/styles/components.scss @@ -8,6 +8,16 @@ // Components - for complex parts of the UI like search bars or compound buttons // + .phosphor-icon { + box-sizing: content-box; + + width: 22px; + height: 22px; + + display: grid; + place-content: center; + } + .material-symbols-outlined { font-family: 'Material Symbols Outlined Variable'; font-weight: normal; @@ -63,7 +73,8 @@ padding-left: 0.35rem; } - .material-symbols-outlined { + .material-symbols-outlined, + .phosphor-icon { padding: 0 0.5rem; } } @@ -699,7 +710,8 @@ background: var(--filter-bg-color, #ddd); - .material-symbols-outlined { + .material-symbols-outlined, + .phosphor-icon { padding: 0 0.35rem; } @@ -834,7 +846,7 @@ text-align: center; justify-items: center; align-content: start; - width: 25ch; + width: 28ch; .date { display: grid; @@ -851,6 +863,11 @@ grid-auto-flow: column; gap: 0.5rem; justify-content: center; + + .phosphor-icon { + width: 28px; + height: 28px; + } } > img { diff --git a/src/styles/pages.scss b/src/styles/pages.scss index 22955b3..4494b69 100644 --- a/src/styles/pages.scss +++ b/src/styles/pages.scss @@ -647,7 +647,7 @@ align-items: center; padding: 6rem; - gap: 4rem; + gap: 6rem; } }