import { useState, useCallback } from 'react'; import { getInvoiceFromLightningAddress, type GetInvoiceParams } from '@/lib/lightningAddress'; interface UseLightningAddressReturn { getInvoice: (params: GetInvoiceParams) => Promise; isLoading: boolean; error: string | null; } /** * Hook for resolving Lightning addresses to invoices */ export function useLightningAddress(): UseLightningAddressReturn { const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const getInvoice = useCallback(async (params: GetInvoiceParams): Promise => { setIsLoading(true); setError(null); try { const invoice = await getInvoiceFromLightningAddress(params); setIsLoading(false); return invoice; } catch (err) { const errorMessage = err instanceof Error ? err.message : 'Unknown error occurred'; setError(errorMessage); setIsLoading(false); throw err; } }, []); return { getInvoice, isLoading, error, }; }