import { useQuery } from '@tanstack/react-query'; import type { NostrEvent } from '@nostrify/nostrify'; import { useSkateRelays } from '@/hooks/useSkateRelays'; import { useCurrentUser } from '@/hooks/useCurrentUser'; /** * The current user's existing Lab profile **event** for a given kind + fixed * `d` identifier, so a "Become …" form can prefill and edit what was already * published (instead of always starting blank and silently overwriting). */ export function useMyLabProfileEvent(kind: number, identifier: string) { const { querySkateContent, getQueryKeySuffix } = useSkateRelays(); const { user } = useCurrentUser(); return useQuery({ queryKey: ['my-lab-profile', kind, identifier, user?.pubkey, getQueryKeySuffix()], enabled: !!user?.pubkey, staleTime: 30_000, refetchOnMount: 'always', queryFn: async () => { if (!user?.pubkey) return null; const signal = AbortSignal.timeout(10000); const events = await querySkateContent( [{ kinds: [kind], authors: [user.pubkey], '#d': [identifier], limit: 1 }], { signal }, ); return events[0] ?? null; }, }); }