cometchat-react-ui-kit2
Version:
CometChat UI Kit for React App
139 lines (135 loc) • 5.43 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CometChatJoinProtectedGroup = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireDefault(require("react"));
var _chat = require("@cometchat-pro/chat");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Shared = require("../../Shared");
var _JoinProtectedGroupsStyles = require("./JoinProtectedGroupsStyles");
var _warning = _interopRequireDefault(require("../CometChatCreateGroup/resources/warning.svg"));
var _style = require("./style");
var _CometChatGroupEvents = require("../CometChatGroupEvents");
var CometChatJoinProtectedGroup = function CometChatJoinProtectedGroup(props) {
/**
* Destructuring Props
*/
var title = props.title,
group = props.group,
passwordPlaceholderText = props.passwordPlaceholderText,
joinGroupButtonText = props.joinGroupButtonText,
style = props.style,
theme = props.theme;
/**
* Internal states
*/
var _React$useState = _react["default"].useState(null),
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
passwordInput = _React$useState2[0],
setPasswordInput = _React$useState2[1];
var _React$useState3 = _react["default"].useState(false),
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
isError = _React$useState4[0],
setError = _React$useState4[1];
var _React$useState5 = _react["default"].useState(null),
_React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 2),
errorText = _React$useState6[0],
setErrorText = _React$useState6[1];
var _theme = new _Shared.CometChatTheme(theme || {});
/**
* handle password input change
*/
var handleChange = function handleChange(e) {
setPasswordInput(e.target.value);
};
/**
*
* @returns Performs join group on click
*/
var joinGroup = function joinGroup() {
if (!passwordInput) {
setError(true);
setErrorText((0, _Shared.localize)("GROUP_PASSWORD_BLANK"));
return false;
}
var guid = group === null || group === void 0 ? void 0 : group.guid;
var type = group === null || group === void 0 ? void 0 : group.type;
var password = passwordInput;
_chat.CometChat.joinGroup(guid, type, password).then(function (response) {
setError(false);
_CometChatGroupEvents.CometChatGroupEvents.emit(_CometChatGroupEvents.CometChatGroupEvents.onGroupMemberJoin, response);
})["catch"](function (error) {
_CometChatGroupEvents.CometChatGroupEvents.emit(_CometChatGroupEvents.CometChatGroupEvents.onGroupError, error);
setError(true);
setErrorText(error.message);
});
};
return /*#__PURE__*/_react["default"].createElement("div", {
className: "joingroup__container",
style: (0, _style.joinGroupContainerStyle)()
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "joingroup__title",
style: (0, _style.joinGroupTitleStyle)(style, _theme)
}, title), /*#__PURE__*/_react["default"].createElement("div", {
className: "joingroup__input--password"
}, /*#__PURE__*/_react["default"].createElement("input", {
type: "password",
placeholder: passwordPlaceholderText,
value: passwordInput,
onChange: handleChange,
style: (0, _style.joinGroupPasswordInputStyle)(style, _theme)
})), isError && errorText ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
className: "decorator__message--error",
style: (0, _style.errorContainerStyle)(style, _theme)
}, /*#__PURE__*/_react["default"].createElement(_Shared.CometChatListItem, {
iconURL: _warning["default"],
style: (0, _style.errorIconStyle)()
}), /*#__PURE__*/_react["default"].createElement("div", {
style: (0, _style.errorTextStyle)(_theme)
}, errorText))) : null, /*#__PURE__*/_react["default"].createElement("button", {
className: "joingroup__button--join",
style: (0, _style.joinGroupButtonStyle)(style, _theme),
onClick: joinGroup
}, joinGroupButtonText));
};
exports.CometChatJoinProtectedGroup = CometChatJoinProtectedGroup;
CometChatJoinProtectedGroup.defaultProps = {
title: (0, _Shared.localize)("ENTER_GROUP_PASSWORD"),
group: null,
passwordPlaceholderText: (0, _Shared.localize)("GROUP_PASSWORD"),
joinGroupButtonText: (0, _Shared.localize)("CONTINUE"),
style: {
width: "",
height: "",
boxShadow: "",
background: "",
border: "",
borderRadius: "",
titleTextFont: "",
titleTextColor: "",
errorTextFont: "",
errorTextColor: "",
passwordTextFont: "",
passwordTextColor: "",
passwordPlaceholderTextFont: "",
passwordPlaceholderTextColor: "",
passwordInputBackground: "",
passwordInputBorder: "",
passwordInputBorderRadius: "",
passwordInputBoxShadow: "",
joinButtonTextFont: "",
joinButtonTextColor: "",
joinButtonBackground: "",
joinButtonBorderRadius: ""
}
};
CometChatJoinProtectedGroup.propTypes = {
title: _propTypes["default"].string,
group: _propTypes["default"].object,
passwordPlaceholderText: _propTypes["default"].string,
joinGroupButtonText: _propTypes["default"].string,
style: _propTypes["default"].object
};