cozy-search
Version:
UI components about search bar and IA assistant
143 lines (119 loc) • 6.9 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _twakeIcons = require("@linagora/twake-icons");
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireWildcard(require("react"));
var _ActionsMenuItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ActionsMenu/ActionsMenuItem"));
var _Badge = _interopRequireDefault(require("cozy-ui/transpiled/react/Badge"));
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
var _AssistantAvatar = _interopRequireDefault(require("../Assistant/AssistantAvatar"));
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 styles = {
"assistant-container": "styles__assistant-container___2WDzp",
"knowledge-panel--light": "styles__knowledge-panel--light___1dZvc",
"knowledge-panel--dark": "styles__knowledge-panel--dark___3IGQc",
"trigger-button": "styles__trigger-button___yyIz8",
"assistant-icon": "styles__assistant-icon___1VM6i",
"assistant-icon--small": "styles__assistant-icon--small___3D9po",
"assistant-icon--composer": "styles__assistant-icon--composer___1i3dU",
"menu-item": "styles__menu-item___1jvWN",
"create-item": "styles__create-item___3ZARq",
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
"menu-item-actions": "styles__menu-item-actions___1ykUi",
"chip": "styles__chip___16BPR",
"selected-item--mobile": "styles__selected-item--mobile___gxVpw"
};
var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
var _cx, _cx2;
var assistant = _ref.assistant,
onClose = _ref.onClose,
onSelect = _ref.onSelect,
selectedAssistant = _ref.selectedAssistant,
setAssistantIdInAction = _ref.setAssistantIdInAction,
setIsOpenDeleteAssistant = _ref.setIsOpenDeleteAssistant,
setIsOpenEditAssistant = _ref.setIsOpenEditAssistant,
_ref$disableActions = _ref.disableActions,
disableActions = _ref$disableActions === void 0 ? false : _ref$disableActions;
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
isMobile = _useBreakpoints.isMobile;
var handleSelect = function handleSelect(assistant) {
onSelect(assistant);
onClose();
};
var assistantId = assistant._id || assistant.id;
var handleDelete = function handleDelete(e) {
setAssistantIdInAction(assistantId);
setIsOpenDeleteAssistant(true);
onClose();
e.stopPropagation();
};
var handleEdit = function handleEdit(e) {
setAssistantIdInAction(assistantId);
setIsOpenEditAssistant(true);
onClose();
e.stopPropagation();
};
var isSelected = (0, _react.useMemo)(function () {
return (selectedAssistant === null || selectedAssistant === void 0 ? void 0 : selectedAssistant._id) === assistantId;
}, [selectedAssistant === null || selectedAssistant === void 0 ? void 0 : selectedAssistant._id, assistantId]);
return /*#__PURE__*/_react.default.createElement(_ActionsMenuItem.default, {
onClick: function onClick() {
return handleSelect(assistant);
},
className: styles['menu-item']
}, /*#__PURE__*/_react.default.createElement("div", {
className: "u-flex u-flex-items-center"
}, isMobile && isSelected ? /*#__PURE__*/_react.default.createElement(_Badge.default, {
badgeContent: /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
icon: _twakeIcons.Check,
size: 10,
className: styles['selected-item--mobile']
}),
variant: "standard",
size: "small",
anchorOrigin: {
vertical: 'bottom',
horizontal: 'right'
},
overlap: "circular"
}, /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, {
assistant: assistant
})) : /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, {
assistant: assistant
}), /*#__PURE__*/_react.default.createElement(_Typography.default, {
variant: "body1"
}, assistant.name)), /*#__PURE__*/_react.default.createElement("div", {
className: "u-flex u-flex-items-center u-flex-justify-between"
}, isSelected && !isMobile && /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
icon: _twakeIcons.Check,
className: "u-success"
}), !disableActions && /*#__PURE__*/_react.default.createElement("div", {
className: styles['menu-item-actions']
}, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
"aria-label": "Edit assistant",
size: "small",
className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, styles['menu-item-icon-button'], !isMobile || !isSelected && isMobile), (0, _defineProperty2.default)(_cx, 'u-db', isSelected && isMobile), _cx)),
onClick: handleEdit
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
icon: _twakeIcons.Pen,
color: "var(--primaryColor)"
})), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
"aria-label": "Delete assistant",
size: "small",
className: (0, _classnames.default)((_cx2 = {}, (0, _defineProperty2.default)(_cx2, styles['menu-item-icon-button'], !isMobile || !isSelected && isMobile), (0, _defineProperty2.default)(_cx2, 'u-db', isSelected && isMobile), _cx2)),
onClick: handleDelete
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
icon: _twakeIcons.Trash,
className: "u-error"
})))));
};
var _default = AssistantSelectionItem;
exports.default = _default;