From 87d65b52b5d8cc882b22b0a68b2681494efc140a Mon Sep 17 00:00:00 2001 From: Antonio De Lucreziis Date: Sun, 6 Oct 2024 17:46:23 +0200 Subject: [PATCH] feat: poisson user page with fuzzy search --- astro.config.mjs | 6 ++-- bun.lockb | Bin 350041 -> 350375 bytes package.json | 1 + src/client/Paginate.tsx | 31 +++++++++++++++++ src/client/UtentiPage.tsx | 63 +++++++++++++++++++++++++--------- src/client/lib/hooks.tsx | 0 src/client/lib/util.ts | 34 ++++++++++++++++++ src/content/meta/whats-phc.md | 1 + src/styles/components.scss | 4 +++ src/styles/pages.scss | 10 ++++++ 10 files changed, 130 insertions(+), 20 deletions(-) create mode 100644 src/client/Paginate.tsx create mode 100644 src/client/lib/hooks.tsx create mode 100644 src/client/lib/util.ts diff --git a/astro.config.mjs b/astro.config.mjs index 60f8b8a..51933e2 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -19,9 +19,9 @@ export default defineConfig({ }, }, integrations: [preact(), mdx()], - adapter: node({ - mode: 'standalone', - }), + // adapter: node({ + // mode: 'standalone', + // }), output: 'hybrid', outDir: './out/astro', build: { diff --git a/bun.lockb b/bun.lockb index 4e290a1e3bfefd6990403da5d43e2f7a0aa2fcce..da3686a0cd39bfc91df3dde2103674f319f24b10 100755 GIT binary patch delta 64370 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 delta 63466 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 l{>gv*!`}({ + items, + pageSize, + children, +}: { + items: ReadonlySignal + pageSize: number + children: (item: T) => JSX.Element +}) => { + const $shownItems = useSignal(pageSize) + + const $paginatedItems = useComputed(() => { + return items.value.slice(0, $shownItems.value) + }) + + console.log($paginatedItems.value) + + return ( + <> + {$paginatedItems.value.map(children)} +
+ {$shownItems.value < items.value.length && ( + + )} +
+ + ) +} diff --git a/src/client/UtentiPage.tsx b/src/client/UtentiPage.tsx index ebf2e2c..9681719 100644 --- a/src/client/UtentiPage.tsx +++ b/src/client/UtentiPage.tsx @@ -1,5 +1,8 @@ -import { useSignal } from '@preact/signals' +import { useComputed, useSignal } from '@preact/signals' +import Fuse from 'fuse.js' import { useEffect } from 'preact/hooks' +import { trottleDebounce } from './lib/util' +import { ShowMore } from './Paginate' type User = { uid: string @@ -20,37 +23,63 @@ function applyPatches(users: User[]) { } export const UtentiPage = () => { - const utentiSignal = useSignal([]) + const $utentiData = useSignal([]) + const $fuse = useSignal | null>(null) + + const $searchText = useSignal('') + const $searchResults = useComputed(() => + $searchText.value.trim().length > 0 + ? ($fuse.value?.search($searchText.value).map(result => result.item) ?? []) + : $utentiData.value, + ) useEffect(() => { fetch('https://poisson.phc.dm.unipi.it/users.json') .then(response => response.json()) .then(data => { applyPatches(data) - utentiSignal.value = data + + $utentiData.value = data + $fuse.value = new Fuse(data, { + keys: ['gecos'], + }) }) }, []) return ( <>
) diff --git a/src/client/lib/hooks.tsx b/src/client/lib/hooks.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/client/lib/util.ts b/src/client/lib/util.ts new file mode 100644 index 0000000..94997ee --- /dev/null +++ b/src/client/lib/util.ts @@ -0,0 +1,34 @@ +export const trottleDebounce = ( + fn: (...args: T) => R, + delay: number, + options: { leading?: boolean; trailing?: boolean } = {}, +): ((...args: T) => R | undefined) => { + let lastCall = 0 + let lastResult: R | undefined + let lastArgs: T | undefined + let timeout: NodeJS.Timeout | undefined + + const leading = options.leading ?? true + const trailing = options.trailing ?? true + + return (...args: T): R | undefined => { + lastArgs = args + if (leading && Date.now() - lastCall >= delay) { + lastCall = Date.now() + lastResult = fn(...args) + } else { + if (timeout) { + clearTimeout(timeout) + } + timeout = setTimeout(() => { + if (trailing && lastArgs) { + lastCall = Date.now() + lastResult = fn(...lastArgs) + } + }, delay) + } + + console.log(lastResult) + return lastResult + } +} diff --git a/src/content/meta/whats-phc.md b/src/content/meta/whats-phc.md index e60aa17..b936413 100644 --- a/src/content/meta/whats-phc.md +++ b/src/content/meta/whats-phc.md @@ -1,4 +1,5 @@ --- +# Questo documento è utilizzato nella homepage del sito nella card principale title: Cos'è il PHC? --- diff --git a/src/styles/components.scss b/src/styles/components.scss index 5f4a444..73431bb 100644 --- a/src/styles/components.scss +++ b/src/styles/components.scss @@ -594,4 +594,8 @@ max-width: 25rem; } } + + .show-more { + place-self: center; + } } diff --git a/src/styles/pages.scss b/src/styles/pages.scss index ebbd4da..1267f5c 100644 --- a/src/styles/pages.scss +++ b/src/styles/pages.scss @@ -239,6 +239,8 @@ } .utenti { + background: #ffffe4; + main { justify-self: center; @@ -250,6 +252,14 @@ padding: 5rem 0; gap: 5rem; + + .search-result { + background: #ffeabc; + } + + button { + background: #ffd270; + } } }
- {utentiSignal.value.map(user => ( - - ))} + {$searchResults.value ? ( + + {poissonUser => ( + console.log(poissonUser), + ( +
+
+ person +
+
{poissonUser.gecos}
+ +
+ ) + )} +
+ ) : ( + <>Nessun risultato + )}