From 01f774ef7ea005b50978b0abb2db5799e0178124 Mon Sep 17 00:00:00 2001 From: MartinBraquet Date: Wed, 18 Feb 2026 20:01:20 +0100 Subject: [PATCH] Add UserLinkFromId component for improved user linking --- web/components/events/event-card.tsx | 14 ++++---------- web/components/events/user-link.tsx | 10 ++++++++++ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/web/components/events/event-card.tsx b/web/components/events/event-card.tsx index 5bb14346..ac7879fe 100644 --- a/web/components/events/event-card.tsx +++ b/web/components/events/event-card.tsx @@ -4,8 +4,7 @@ import {useUser} from 'web/hooks/use-user' import {useLocale, useT} from 'web/lib/locale' import Link from 'next/link' import dayjs from 'dayjs' -import {UserLink} from './user-link' -import {useUsersInStore} from "web/hooks/use-user-supabase"; +import {UserLink, UserLinkFromId} from './user-link' import {formatTimeShort, fromNow} from "web/lib/util/time"; import {capitalize} from "lodash"; import {HOUR_MS} from "common/util/time"; @@ -22,12 +21,7 @@ export function EventCard(props: { const user = useUser() const t = useT() const {locale} = useLocale() - const users = useUsersInStore([ - ...(event.participants ?? []), - ...(event.maybe ?? []), - ], - `event-card-${event.id}` - ) + const isRsvped = user && event.participants.includes(user.id) const isMaybe = user && event.maybe.includes(user.id) @@ -111,11 +105,11 @@ export function EventCard(props: { {event.max_participants && t('events.participants_max', ' / {max} max', {max: event.max_participants})} {event.maybe.length > 0 && t('events.maybe_count', ' ({count} maybe)', {count: event.maybe.length})}

- {users && event.participants.length > 0 && ( + {event.participants.length > 0 && (
{event.participants.map((participantId: any) => ( - + ))}
diff --git a/web/components/events/user-link.tsx b/web/components/events/user-link.tsx index e7938705..9da8ad2d 100644 --- a/web/components/events/user-link.tsx +++ b/web/components/events/user-link.tsx @@ -1,4 +1,5 @@ import Link from 'next/link' +import {useUserInStore} from "web/hooks/use-user-supabase"; type User = { id: string @@ -29,3 +30,12 @@ export function UserLink({user, className = ""}: { ) } + +export function UserLinkFromId({userId, className = ""}: { + userId: string | null | undefined + className?: string +}) { + if (!userId) return null + const user = useUserInStore(userId) + return +}