@sendbird/uikit-react-native-foundation
Version:
A foundational UI kit for building chat-enabled React Native apps.
117 lines (116 loc) • 3.66 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _uikitUtils = require("@sendbird/uikit-utils");
var _Box = _interopRequireDefault(require("../../components/Box"));
var _Icon = _interopRequireDefault(require("../../components/Icon"));
var _Image = _interopRequireDefault(require("../../components/Image"));
var _Text = _interopRequireDefault(require("../../components/Text"));
var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const OpenChannelPreview = ({
customCover,
coverUrl,
participantsCount = 0,
title,
frozen
}) => {
const {
colors
} = (0, _useUIKitTheme.default)();
const color = colors.ui.openChannelPreview.default.none;
return /*#__PURE__*/_react.default.createElement(_Box.default, {
backgroundColor: color.background,
width: '100%',
height: 62,
flexDirection: 'row',
alignItems: 'center',
paddingHorizontal: 16
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
width: styles.channelCover.width,
height: styles.channelCover.height,
borderRadius: styles.channelCover.width,
overflow: 'hidden',
marginEnd: 16
}, (0, _uikitUtils.conditionChaining)([Boolean(customCover)], [customCover, /*#__PURE__*/_react.default.createElement(_Image.default, {
resizeMode: 'cover',
style: [styles.channelCover, {
backgroundColor: color.coverBackground
}],
source: {
uri: coverUrl
}
})])), /*#__PURE__*/_react.default.createElement(_Box.default, {
flex: 1,
height: '100%',
justifyContent: 'center'
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
flexDirection: 'row',
flexShrink: 1,
marginBottom: 4,
alignItems: 'center'
}, /*#__PURE__*/_react.default.createElement(_Text.default, {
subtitle1: true,
style: styles.channelInfoTitle,
numberOfLines: 1,
color: color.textTitle
}, title), frozen && /*#__PURE__*/_react.default.createElement(_Icon.default, {
size: 16,
icon: 'freeze',
color: color.frozenIcon,
containerStyle: styles.marginStart
})), /*#__PURE__*/_react.default.createElement(_Box.default, {
flexDirection: 'row',
flexShrink: 1,
alignItems: 'center',
justifyContent: 'flex-start'
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
flexDirection: 'row',
alignItems: 'center'
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
size: 16,
icon: 'members',
color: color.participantsIcon,
containerStyle: styles.marginEnd
}), /*#__PURE__*/_react.default.createElement(_Text.default, {
caption2: true,
color: color.textParticipants
}, (0, _uikitUtils.truncatedCount)(participantsCount, 999)))), /*#__PURE__*/_react.default.createElement(Separator, {
color: color.separator
})));
};
const Separator = ({
color
}) => /*#__PURE__*/_react.default.createElement(_Box.default, {
style: [styles.separator, {
backgroundColor: color
}]
});
const styles = (0, _createStyleSheet.default)({
channelCover: {
width: 32,
height: 32
},
channelInfoTitle: {
flexShrink: 1
},
marginEnd: {
marginEnd: 4
},
marginStart: {
marginStart: 4
},
separator: {
position: 'absolute',
start: 0,
end: -16,
bottom: 0,
height: 1
}
});
var _default = exports.default = OpenChannelPreview;
//# sourceMappingURL=index.js.map