stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
80 lines • 3.06 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ClosingPortalHostsLayer = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
var _reactNativeTeleport = require("react-native-teleport");
var _stateStore = require("../../state-store");
var _jsxRuntime = require("react/jsx-runtime");
var _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/overlayContext/ClosingPortalHostsLayer.tsx";
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var ClosingPortalHostSlot = ({
closeCoverOpacity,
hostName,
layout
}) => {
var style = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
var value = layout.value;
if (!value) return {
opacity: closeCoverOpacity.value
};
return {
height: value.h,
left: value.x,
opacity: closeCoverOpacity.value,
top: value.y,
width: value.w,
position: 'absolute'
};
});
return (0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
pointerEvents: "box-none",
style: style,
testID: `closing-portal-host-slot-${hostName}`,
children: (0, _jsxRuntime.jsx)(_reactNativeTeleport.PortalHost, {
name: hostName,
style: styles.absoluteFill
})
});
};
var ClosingPortalHostsLayer = ({
closeCoverOpacity
}) => {
var closingPortalLayoutStacks = (0, _stateStore.useClosingPortalLayouts)();
var closingPortalHosts = (0, _react.useMemo)(() => {
var topHosts = [];
Object.entries(closingPortalLayoutStacks).forEach(([hostName, entries]) => {
var topEntry = entries[entries.length - 1];
if (topEntry) {
topHosts.push({
hostName,
layout: topEntry.layout
});
}
});
return topHosts;
}, [closingPortalLayoutStacks]);
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: closingPortalHosts.map(({
hostName,
layout
}) => (0, _jsxRuntime.jsx)(ClosingPortalHostSlot, {
closeCoverOpacity: closeCoverOpacity,
hostName: hostName,
layout: layout
}, hostName))
});
};
exports.ClosingPortalHostsLayer = ClosingPortalHostsLayer;
var styles = _reactNative.StyleSheet.create({
absoluteFill: {
bottom: 0,
left: 0,
position: 'absolute',
right: 0,
top: 0
}
});
//# sourceMappingURL=ClosingPortalHostsLayer.js.map