@theoplayer/react-native-ui
Version:
A React Native UI for @theoplayer/react-native
34 lines (32 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ChromecastButton = ChromecastButton;
exports.isConnected = isConnected;
var _react = _interopRequireDefault(require("react"));
var _reactNativeGoogleCast = require("react-native-google-cast");
var _PlayerContext = require("../util/PlayerContext");
var _ActionButton = require("./actionbutton/ActionButton");
var _useChromecast = require("../../hooks/useChromecast");
var _TestIDs = require("../../utils/TestIDs");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function isConnected(state) {
return state === 'connecting' || state === 'connected';
}
/**
* The native button to enable Chromecast for the `react-native-theoplayer` UI.
* This component uses the button from `react-native-google-cast` and is not supported on web.
*/
function ChromecastButton(props) {
const castState = (0, _useChromecast.useChromecast)();
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PlayerContext.PlayerContext.Consumer, {
children: context => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGoogleCast.CastButton, {
style: props.style ?? _ActionButton.DEFAULT_ACTION_BUTTON_STYLE,
testID: props.testID ?? _TestIDs.TestIDs.CHROMECAST_BUTTON,
tintColor: isConnected(castState) ? context.style.colors.iconSelected : context.style.colors.icon
})
});
}
//# sourceMappingURL=ChromecastButton.js.map