import { useMemo } from 'react'; export type BrowserFeature = 'Web Bluetooth' | 'Web Serial' | 'Secure Context'; interface BrowserSupport { supported: BrowserFeature[]; unsupported: BrowserFeature[]; } export function useBrowserFeatureDetection(): BrowserSupport { const support = useMemo(() => { const features: [BrowserFeature, boolean][] = [ ['Web Bluetooth', !!navigator.bluetooth], ['Web Serial', !!navigator.serial], ['Secure Context', window.location.protocol === 'https:' || window.location.hostname === 'localhost'] ]; return features.reduce( (acc, [feature, isSupported]) => { const list = isSupported ? acc.supported : acc.unsupported; list.push(feature); return acc; }, { supported: [], unsupported: [] } ); }, []); return support; }