@sendbird/uikit-react
Version:
Sendbird UIKit for React: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
67 lines (63 loc) • 4.15 kB
JavaScript
import React__default, { useRef, useState, useContext } from 'react';
import { u as useLocalization, L as LocalizationContext } from '../../chunks/bundle-Dx_38OXn.js';
import { C as ContextMenu, b as MenuItems, c as MenuItem } from '../../chunks/bundle-ACCb-8jH.js';
import IconButton from '../../ui/IconButton.js';
import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
import { M as Modal } from '../../chunks/bundle-EGZmMlDM.js';
import { u as useSendbird } from '../../chunks/bundle-DlIBbbMW.js';
import '../../chunks/bundle-k5pprEL4.js';
import '../../chunks/bundle-DoyzmJ4N.js';
import '../../chunks/bundle-Dsv3ZewI.js';
import 'react-dom';
import '../../chunks/bundle-Ds9YPch2.js';
import '@sendbird/chat';
import '@sendbird/chat/openChannel';
import '../../ui/SortByRow.js';
import '../../chunks/bundle-Dub55x6v.js';
import '../../chunks/bundle-DHMhzdxb.js';
import '../../chunks/bundle-BKsKPtjg.js';
import '@sendbird/chat/groupChannel';
import '../../utils/message/getOutgoingMessageState.js';
import '../../chunks/bundle-DTJNwlmx.js';
import '../../chunks/bundle-CmS7TEQp.js';
import '../../chunks/bundle-Dhfbe9sC.js';
import '../../chunks/bundle-CAqNV7Jw.js';
import '../../chunks/bundle-3CHYtOfL.js';
import '../../chunks/bundle-CDtkDyUw.js';
import '../../ui/Button.js';
var LeaveGroupChannel = function (_a) {
var channel = _a.channel, onSubmit = _a.onSubmit, onCancel = _a.onCancel;
var _b = useSendbird().state.config, logger = _b.logger, isOnline = _b.isOnline;
var stringSet = useLocalization().stringSet;
if (channel) {
return (React__default.createElement(Modal, { disabled: !isOnline, onCancel: onCancel, onSubmit: function () {
logger.info('LeaveGroupChannel: Leaving channel', channel);
channel.leave().then(function () {
logger.info('LeaveGroupChannel: Leaving channel successful!', channel);
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
});
}, submitText: stringSet.MODAL__LEAVE_CHANNEL__FOOTER, titleText: stringSet.MODAL__LEAVE_CHANNEL__TITLE }));
}
};
function GroupChannelPreviewAction(_a) {
var channel = _a.channel, _b = _a.disabled, disabled = _b === void 0 ? false : _b, onLeaveChannel = _a.onLeaveChannel;
var parentRef = useRef(null);
var parentContainerRef = useRef(null);
var _c = useState(false), showModal = _c[0], setShowModal = _c[1];
var stringSet = useContext(LocalizationContext).stringSet;
return (React__default.createElement("div", { ref: parentContainerRef, tabIndex: 0, role: "button", style: { display: 'inline-block' }, onKeyDown: function (e) { return e.stopPropagation(); }, onClick: function (e) { return e.stopPropagation(); } },
React__default.createElement(ContextMenu, { menuTrigger: function (toggleDropdown) { return (React__default.createElement(IconButton, { ref: parentRef, onClick: toggleDropdown, height: "32px", width: "32px" },
React__default.createElement(Icon, { type: IconTypes.MORE, fillColor: IconColors.PRIMARY, width: "24px", height: "24px" }))); }, menuItems: function (closeDropdown) { return (React__default.createElement(MenuItems, { parentRef: parentRef, parentContainRef: parentContainerRef, closeDropdown: closeDropdown },
React__default.createElement(MenuItem, { onClick: function () {
if (disabled)
return;
setShowModal(true);
closeDropdown();
}, testID: "channel_list_item_context_menu_leave_channel" }, stringSet.CHANNEL_SETTING__LEAVE_CHANNEL__TITLE))); } }),
showModal && (React__default.createElement(LeaveGroupChannel, { channel: channel, onSubmit: function () {
setShowModal(false);
onLeaveChannel === null || onLeaveChannel === void 0 ? void 0 : onLeaveChannel();
}, onCancel: function () { return setShowModal(false); } }))));
}
export { GroupChannelPreviewAction, GroupChannelPreviewAction as default };
//# sourceMappingURL=GroupChannelPreviewAction.js.map