32 lines
896 B
TypeScript
Raw Normal View History

2025-04-16 21:43:54 -05:00
import { useNostr } from '@nostrify/react';
import { useQuery } from '@tanstack/react-query';
import { NostrEvent, NostrFilter } from '@nostrify/nostrify';
// Hook for fetching Nostr events based on filters
export function useNostrQuery(filters: NostrFilter[], options = {}) {
const { nostr } = useNostr();
return useQuery<NostrEvent[]>({
queryKey: ['nostr', JSON.stringify(filters)],
queryFn: async () => {
if (!nostr) return [];
return await nostr.query(filters);
},
...options,
});
}
// Hook for publishing Nostr events
export function useNostrPublish() {
const { nostr } = useNostr();
const publish = async (event: NostrEvent) => {
if (!nostr) throw new Error('Nostr context not available');
return await nostr.event(event);
};
return { publish };
}
// Export the useNostr hook as well for direct access to the pool
export { useNostr };