diff --git a/src/i18n/en.ts b/src/i18n/en.ts index 490d693..0420b22 100644 --- a/src/i18n/en.ts +++ b/src/i18n/en.ts @@ -6394,6 +6394,7 @@ walletUi: { notOrganiser: 'Only the organiser can issue passes', passIssued: 'Pass issued', issueFailed: 'Could not issue the pass', + issuedPasses: 'Issued check-in passes', }, studio: { unsaved: 'Unsaved changes', diff --git a/src/i18n/es.ts b/src/i18n/es.ts index c99e531..c34225e 100644 --- a/src/i18n/es.ts +++ b/src/i18n/es.ts @@ -6394,6 +6394,7 @@ walletUi: { notOrganiser: 'Solo el organizador puede emitir pases', passIssued: 'Pase emitido', issueFailed: 'No se pudo emitir el pase', + issuedPasses: 'Pases de acceso emitidos', }, studio: { unsaved: 'Cambios sin guardar', diff --git a/src/pages/RiderCardPage.tsx b/src/pages/RiderCardPage.tsx index 78000c1..e51c6a1 100644 --- a/src/pages/RiderCardPage.tsx +++ b/src/pages/RiderCardPage.tsx @@ -277,6 +277,9 @@ export default function RiderCardPage() { : memberships.some((m) => user?.pubkey && m.crew.admins.includes(user.pubkey)) ? 'admin' : undefined; const organisesEvent = myEvents.some((e) => e.pubkey === user?.pubkey); + const eventPasses = activeEvent + ? issuedPasses.filter((p) => p.coord === `${CALENDAR_EVENT_KIND}:${activeEvent.pubkey}:${activeEvent.identifier}`) + : []; const myVenues = useMemo( () => (allSpots ?? []).filter((s) => s.pubkey === user?.pubkey), [allSpots, user?.pubkey], @@ -1127,6 +1130,36 @@ export default function RiderCardPage() { {t('cardUi.event.issuePassBtn')}

{t('cardUi.event.issuePassHint')}

+ + {eventPasses.length > 0 && ( +
+

{t('cardUi.event.issuedPasses')}

+ {eventPasses.slice(0, 6).map((p) => ( +
+ + {p.holder ? `${nip19.npubEncode(p.holder).slice(0, 12)}…` : '—'} + + {p.status === 'revoked' ? ( + {t('cardUi.parkRevoked')} + ) : ( + + )} +
+ ))} +
+ )} )}