diff --git a/src/modules/events/components/OrganizerCard.vue b/src/modules/events/components/OrganizerCard.vue
index dea6c4f..66030ea 100644
--- a/src/modules/events/components/OrganizerCard.vue
+++ b/src/modules/events/components/OrganizerCard.vue
@@ -3,37 +3,15 @@ import { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar'
import { User } from 'lucide-vue-next'
import { useOrganizerProfile } from '../composables/useOrganizerProfile'
-const props = withDefaults(
- defineProps<{
- pubkey: string
- /** Compact row variant — small avatar, single-line "By
".
- * Used on the events feed card where the organizer is a hint, not
- * the focus. Default (full) is used on the detail page. */
- compact?: boolean
- }>(),
- { compact: false },
-)
+const props = defineProps<{
+ pubkey: string
+}>()
const { profile, displayName, isLoading } = useOrganizerProfile(props.pubkey)
-
-
-
-
-
-
-
-
-
- Loading…
- {{ displayName }}
-
-
-
-
-
+
@@ -42,14 +20,14 @@ const { profile, displayName, isLoading } = useOrganizerProfile(props.pubkey)
- Loading…
+ Loading...
{{ displayName }}
{{ profile.nip05 }}
- {{ pubkey.slice(0, 16) }}…
+ {{ pubkey.slice(0, 16) }}...
diff --git a/src/modules/events/composables/useOrganizerProfile.ts b/src/modules/events/composables/useOrganizerProfile.ts
index 0f13f19..8d6455b 100644
--- a/src/modules/events/composables/useOrganizerProfile.ts
+++ b/src/modules/events/composables/useOrganizerProfile.ts
@@ -1,6 +1,6 @@
-import { computed, onMounted, ref } from 'vue'
+import { ref, onMounted, onUnmounted } from 'vue'
import { tryInjectService, SERVICE_TOKENS } from '@/core/di-container'
-import type { ProfileService, UserProfile } from '@/modules/base/nostr/ProfileService'
+import type { Event as NostrEvent } from 'nostr-tools'
export interface OrganizerProfile {
pubkey: string
@@ -14,92 +14,134 @@ export interface OrganizerProfile {
website?: string
}
-function fromUserProfile(p: UserProfile): OrganizerProfile {
- return {
- pubkey: p.pubkey,
- name: p.name,
- displayName: p.display_name,
- about: p.about,
- picture: p.picture,
- nip05: p.nip05,
- }
-}
+// Global cache of fetched profiles
+const profileCache = ref