import { useEffect, useState } from 'react' import BarcodeScannerDialog from './BarcodeScannerDialog' import { registerBarcodeScanner } from './scanBarcode' /** * `scanBarcode()` çağrılarını karşılayan tekil diyalog. Uygulama kökünde bir * kez mount edilir; React ağacı dışından açılabilmesinin tek yolu budur. */ const BarcodeScannerHost = () => { const [resolve, setResolve] = useState<((code: string | null) => void) | null>(null) useEffect(() => { registerBarcodeScanner((next) => setResolve(() => next)) return () => registerBarcodeScanner(undefined) }, []) const finish = (code: string | null) => { resolve?.(code) setResolve(null) } if (!resolve) return null return ( finish(code)} onDialogClose={() => finish(null)} /> ) } export default BarcodeScannerHost