UNPKG

cometchat-react-ui-kit2

Version:

CometChat UI Kit for React App

92 lines (91 loc) 4.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.CometChatActionSheet = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _ = require("../.."); var _layoutType = require("./layoutType"); var _hooks = require("./hooks"); var _style = require("./style"); var _fileUpload = _interopRequireDefault(require("./resources/file-upload.svg")); var _this = void 0; function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var CometChatActionSheet = function CometChatActionSheet(props) { var _React$useState = React.useState([]), _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2), actionList = _React$useState2[0], setActionList = _React$useState2[1]; var _React$useState3 = React.useState(props.layoutMode), _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2), mode = _React$useState4[0], setMode = _React$useState4[1]; var _React$useState5 = React.useState(new _.CometChatTheme(props.theme || {})), _React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 1), theme = _React$useState6[0]; var toggleLayoutMode = function toggleLayoutMode() { var newMode = mode === _layoutType.layoutType.list ? _layoutType.layoutType.grid : _layoutType.layoutType.list; setMode(newMode); }; var renderKey = null; var renderItems = actionList.map(function (action, index) { return /*#__PURE__*/React.createElement(_.CometChatListItem, { key: action === null || action === void 0 ? void 0 : action.type, iconURL: action === null || action === void 0 ? void 0 : action.icon, text: action === null || action === void 0 ? void 0 : action.name, style: (0, _style.listItemStyle)(props, mode, index, theme), onItemClick: action.onActionClick }); }); var toggleLayoutButton = !props.hideLayoutMode ? /*#__PURE__*/React.createElement("div", { className: "sheet__layout", style: (0, _style.actionSheetLayoutIconStyle)(props, mode), onClick: toggleLayoutMode.bind(_this) }) : null; (0, _hooks.Hooks)(props, setActionList); return /*#__PURE__*/React.createElement("div", { className: "action__sheet", style: (0, _style.actionSheetWrapperStyle)(props, mode) }, /*#__PURE__*/React.createElement("div", { key: renderKey, className: "sheet__header", style: (0, _style.actionSheetHeaderStyle)(props) }, /*#__PURE__*/React.createElement("div", { className: "sheet__title", style: (0, _style.actionSheetTitleStyle)(props) }, props.title), toggleLayoutButton), /*#__PURE__*/React.createElement("div", { className: "sheet__items", style: (0, _style.sheetItemListStyle)(mode) }, renderItems)); }; exports.CometChatActionSheet = CometChatActionSheet; CometChatActionSheet.defaultProps = { title: (0, _.localize)("ADD_TO_CHAT"), layoutModeIconURL: _fileUpload["default"], layoutMode: _layoutType.layoutType["list"], hideLayoutMode: false, actions: [], style: { layoutModeIconTint: "rgba(20, 20, 20, 0.04)", borderRadius: "8px", background: "rgb(255,255,255)", border: "0 none", width: "272px", height: "236px", titleFont: "15px 600 Inter, sans-serif", titleColor: "#141414" } }; CometChatActionSheet.propTypes = { title: _propTypes["default"].string, layoutMode: _propTypes["default"].oneOf(["list", "grid"]), hideLayoutMode: _propTypes["default"].bool, layoutModeIconURL: _propTypes["default"].string, style: _propTypes["default"].object, actions: _propTypes["default"].array };