UNPKG

cozy-search

Version:

UI components about search bar and IA assistant

122 lines (100 loc) 6.23 kB
"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 _classnames = _interopRequireDefault(require("classnames")); var _react = _interopRequireDefault(require("react")); var _Divider = _interopRequireDefault(require("cozy-ui/transpiled/react/Divider")); var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem")); var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText")); var _CozyTheme = require("cozy-ui-plus/dist/providers/CozyTheme"); var _twakeI18n = require("twake-i18n"); var _ConversationActions = _interopRequireDefault(require("./ConversationActions")); var _AssistantAvatar = _interopRequireDefault(require("../Assistant/AssistantAvatar")); var _helpers = require("../helpers"); var styles = { "composerContainer": "styles__composerContainer___3bNfY", "composerActions": "styles__composerActions___2xQEH", "conversationBar": "styles__conversationBar___2J-Us", "conversationBar--mobile": "styles__conversationBar--mobile___1jdg8", "conversationViewport": "styles__conversationViewport___24jYX", "conversationBar-input": "styles__conversationBar-input___2DfdZ", "chatConversation": "styles__chatConversation___2EmkA", "conversationHeaderBar": "styles__conversationHeaderBar___C8tlD", "conversationList": "styles__conversationList___2GCzV", "conversationList--container": "styles__conversationList--container___2xRAG", "conversationList--hidden": "styles__conversationList--hidden___20BsT", "conversationListItem--selected": "styles__conversationListItem--selected___2jCyB", "menuToggler": "styles__menuToggler___39GfB", "menuToggler--disabled": "styles__menuToggler--disabled___15vd4", "conversationChips-container": "styles__conversationChips-container___327dE", "conversationChips-startIcon": "styles__conversationChips-startIcon___1yOVn", "conversationChips-chipIcon": "styles__conversationChips-chipIcon___1wmF-", "conversationChips-deleteIcon": "styles__conversationChips-deleteIcon___s9C40", "is-warning": "styles__is-warning___3sa0v", "conversationChips-chip": "styles__conversationChips-chip___2PqQv", "cozyThread-messageContent": "styles__cozyThread-messageContent___2HjdB", "conversation-list-item": "styles__conversation-list-item___rQapI", "conversation-list-item-action": "styles__conversation-list-item-action___qiuKm", "conversation-list-item--selected--light": "styles__conversation-list-item--selected--light___3WvIn", "conversation-list-item--selected--dark": "styles__conversation-list-item--selected--dark___JDQlY", "conversation-list-item--wider": "styles__conversation-list-item--wider___2Tl2c", "conversation-list-item-divider": "styles__conversation-list-item-divider___2LOP1", "conversation-list-item-text": "styles__conversation-list-item-text___31VBM", "conversation-list-item-title": "styles__conversation-list-item-title___3je_6", "conversation-list-item-meta": "styles__conversation-list-item-meta___3Zk-r", "conversation-list-item-subtitle": "styles__conversation-list-item-subtitle___3e_h0" }; var ConversationListItem = function ConversationListItem(_ref) { var _conversation$cozyMet; var conversation = _ref.conversation, selected = _ref.selected, onOpenConversation = _ref.onOpenConversation; var _useI18n = (0, _twakeI18n.useI18n)(), t = _useI18n.t, lang = _useI18n.lang; var _useCozyTheme = (0, _CozyTheme.useCozyTheme)(), theme = _useCozyTheme.type; return /*#__PURE__*/_react.default.createElement(_ListItem.default, { button: true, onClick: function onClick() { return onOpenConversation(conversation._id); }, className: (0, _classnames.default)('u-ov-hidden u-flex-column u-pv-half u-ph-1', styles['conversation-list-item'], (0, _defineProperty2.default)({}, styles["conversation-list-item--selected--".concat(theme)], selected)), selected: selected }, /*#__PURE__*/_react.default.createElement(_ConversationActions.default, { buttonClassName: styles['conversation-list-item-action'], conversation: conversation }), /*#__PURE__*/_react.default.createElement(_ListItemText.default, { className: "u-m-0", primaryTypographyProps: { component: 'div', className: styles['conversation-list-item-text'] }, secondaryTypographyProps: { component: 'div', className: styles['conversation-list-item-text'] }, primary: /*#__PURE__*/_react.default.createElement("span", { className: (0, _classnames.default)('u-ellipsis u-db u-pb-half', styles['conversation-list-item-title']) }, (0, _helpers.getNameOfConversation)(conversation)), secondary: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", { className: (0, _classnames.default)('u-db u-ellipsis', styles['conversation-list-item-subtitle']) }, (0, _helpers.getDescriptionOfConversation)(conversation)), /*#__PURE__*/_react.default.createElement("span", { className: (0, _classnames.default)('u-flex u-flex-items-center', styles['conversation-list-item-subtitle'], styles['conversation-list-item-meta']) }, /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, { assistant: conversation.assistant, isSmall: true }), (0, _helpers.formatConversationDate)((_conversation$cozyMet = conversation.cozyMetadata) === null || _conversation$cozyMet === void 0 ? void 0 : _conversation$cozyMet.updatedAt, t, lang))) }), /*#__PURE__*/_react.default.createElement(_Divider.default, { className: styles['conversation-list-item-divider'] })); }; // Memoized so a re-render of the conversation list only re-renders items // whose props actually changed (typically just the previously- and // newly-selected items). This avoids rebuilding every item's ActionsMenu // popover on each conversation switch. var _default = /*#__PURE__*/_react.default.memo(ConversationListItem); exports.default = _default;