UNPKG

react-airplay

Version:
54 lines (41 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useAvAudioSessionRoutes = exports.useAirplayRoutes = exports.useAirplayConnectivity = exports.useExternalPlaybackAvailability = void 0; var _react = require("react"); var _airplayModule = require("./airplayModule"); const useExternalPlaybackAvailability = options => { var _options$useCachedVal2; const [isExternalPlaybackAvailable, setIsExternalPlaybackAvailable] = (0, _react.useState)(false); (0, _react.useEffect)(() => { var _options$useCachedVal; if ((_options$useCachedVal = options === null || options === void 0 ? void 0 : options.useCachedValue) !== null && _options$useCachedVal !== void 0 ? _options$useCachedVal : false) return; const subscription = (0, _airplayModule.onExternalPlaybackAvailabilityChanged)(setIsExternalPlaybackAvailable); _airplayModule.ExternalPlaybackAvailabilityContext === null || _airplayModule.ExternalPlaybackAvailabilityContext === void 0 ? void 0 : _airplayModule.ExternalPlaybackAvailabilityContext.fetchExternalPlaybackAvailability().then(setIsExternalPlaybackAvailable); return subscription.remove.bind(subscription); }, [(_options$useCachedVal2 = options === null || options === void 0 ? void 0 : options.useCachedValue) !== null && _options$useCachedVal2 !== void 0 ? _options$useCachedVal2 : false]); return isExternalPlaybackAvailable; }; exports.useExternalPlaybackAvailability = useExternalPlaybackAvailability; const useAirplayConnectivity = () => { const routes = useAirplayRoutes(); return routes.length > 0; }; exports.useAirplayConnectivity = useAirplayConnectivity; const useAirplayRoutes = () => { const routes = useAvAudioSessionRoutes(); return routes.filter(route => route.portType === 'AirPlay'); }; exports.useAirplayRoutes = useAirplayRoutes; const useAvAudioSessionRoutes = () => { const [routes, setRoutes] = (0, _react.useState)([]); (0, _react.useEffect)(() => { const subscription = (0, _airplayModule.onAvAudioSessionRoutesChanged)(setRoutes); _airplayModule.AirplayConnectivityContext === null || _airplayModule.AirplayConnectivityContext === void 0 ? void 0 : _airplayModule.AirplayConnectivityContext.fetchAvAudioSessionRoutes().then(setRoutes); return subscription.remove.bind(subscription); }, []); return routes; }; exports.useAvAudioSessionRoutes = useAvAudioSessionRoutes; //# sourceMappingURL=hooks.js.map