UNPKG

@100mslive/react-native-room-kit

Version:

100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.

51 lines 1.79 kB
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import * as React from 'react'; import { StyleSheet, TouchableOpacity } from 'react-native'; import { GestureDetector, Gesture } from 'react-native-gesture-handler'; import { useHMSRoomStyleSheet, useIsHLSViewer } from '../hooks-util'; export const PressableIcon = ({ children, style, active = false, rounded = false, border = true, ...restProps }) => { const isHLSViewer = useIsHLSViewer(); const hmsRoomStyles = useHMSRoomStyleSheet(theme => ({ pressable: { backgroundColor: isHLSViewer ? theme.palette.surface_default : undefined }, border: { borderColor: theme.palette.border_bright }, active: { backgroundColor: theme.palette.surface_brighter, borderColor: theme.palette.surface_brighter } }), [isHLSViewer]); const tapGesture = React.useMemo(() => Gesture.Tap(), []); return /*#__PURE__*/React.createElement(GestureDetector, { gesture: tapGesture }, /*#__PURE__*/React.createElement(TouchableOpacity, _extends({ style: [styles.pressable, hmsRoomStyles.pressable, { borderRadius: rounded ? 20 : 8, ...(border && !isHLSViewer ? { ...styles.withBorder, ...hmsRoomStyles.border } : undefined), ...(active ? hmsRoomStyles.active : undefined) }, style] }, restProps), children)); }; const styles = StyleSheet.create({ pressable: { borderRadius: 8, padding: 8, alignSelf: 'flex-start' }, withBorder: { borderWidth: 1 } }); //# sourceMappingURL=PressableIcon.js.map