import { useState, useCallback } from 'react'; import * as Print from 'expo-print'; export function usePdfGeneration() { const [generating, setGenerating] = useState(false); const [progress, setProgress] = useState(0); const generatePdf = useCallback(async (items: { uri: string }[], progressCb?: (pct: number) => void): Promise => { if (items.length === 0) return null; setGenerating(true); setProgress(0); progressCb?.(0); try { const imagesHtml = items.map((item) => { return `
`; }).join(''); const html = ` ${imagesHtml} `; const { uri } = await Print.printToFileAsync({ html }); setProgress(100); progressCb?.(100); return uri; } catch (err) { console.error('PDF generation failed:', err); return null; } finally { setGenerating(false); } }, []); return { generatePdf, generating, progress, }; }