cozy-search 2.6.2 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Assistant/AssistantAvatar.js +3 -1
- package/dist/components/Assistant/AssistantContainer.js +3 -1
- package/dist/components/Assistant/AssistantMenu.d.ts +16 -0
- package/dist/components/Assistant/AssistantMenu.js +160 -0
- package/dist/components/Assistant/AssistantSelection.d.ts +12 -1
- package/dist/components/Assistant/AssistantSelection.js +55 -115
- package/dist/components/Assistant/AssistantSelectionItem.js +3 -1
- package/dist/components/Assistant/AssistantSidebarItem.d.ts +9 -0
- package/dist/components/Assistant/AssistantSidebarItem.js +108 -0
- package/dist/components/Assistant/styles.styl +13 -0
- package/dist/components/Conversations/Conversation.js +74 -14
- package/dist/components/Conversations/ConversationBar.js +13 -5
- package/dist/components/Conversations/ConversationComposer.js +53 -23
- package/dist/components/Conversations/ConversationListItem.js +20 -40
- package/dist/components/Conversations/ConversationListItemWider.js +14 -11
- package/dist/components/Conversations/styles.styl +110 -23
- package/dist/components/CozyAssistantRuntimeProvider.js +15 -8
- package/dist/components/CreateAssistantSteps/BasicInfoStep.js +37 -1
- package/dist/components/CreateAssistantSteps/Provider.js +1 -0
- package/dist/components/CreateAssistantSteps/ProviderSelectionStep.js +1 -0
- package/dist/components/CreateAssistantSteps/styles.styl +14 -0
- package/dist/components/KnowledgeBase/FolderPickerDialog.js +3 -1
- package/dist/components/KnowledgeBase/KnowledgeBaseChip.d.ts +7 -5
- package/dist/components/KnowledgeBase/KnowledgeBaseChip.js +65 -31
- package/dist/components/KnowledgeBase/conversationAssistant.d.ts +2 -1
- package/dist/components/KnowledgeBase/conversationAssistant.js +6 -1
- package/dist/components/KnowledgeBase/conversationAssistant.spec.js +24 -0
- package/dist/components/KnowledgeBase/styles.styl +18 -0
- package/dist/components/Messages/AssistantMessage.js +25 -21
- package/dist/components/Messages/UserMessage.js +4 -1
- package/dist/components/Messages/styles.styl +41 -0
- package/dist/components/Search/SearchBarMobile.js +13 -5
- package/dist/components/Sidebar/index.js +55 -30
- package/dist/components/Sidebar/styles.styl +12 -11
- package/dist/components/TwakeKnowledges/SourceButton.d.ts +14 -0
- package/dist/components/TwakeKnowledges/SourceButton.js +98 -0
- package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.d.ts +9 -0
- package/dist/components/TwakeKnowledges/TwakeKnowledgeSelector.js +75 -50
- package/dist/components/TwakeKnowledges/styles.styl +29 -2
- package/dist/components/Views/AssistantView.js +9 -1
- package/dist/components/Views/CreateAssistantDialog.js +5 -1
- package/dist/components/Views/DeleteAssistantDialog.js +1 -0
- package/dist/components/Views/EditAssistantDialog.js +5 -1
- package/dist/hooks/useConversation.d.ts +2 -2
- package/dist/hooks/useConversation.js +25 -4
- package/dist/hooks/useConversation.spec.js +14 -2
- package/dist/hooks/useConversation.spec.jsx +21 -3
- package/dist/locales/en.json +5 -1
- package/dist/locales/fr.json +6 -2
- package/dist/locales/index.js +21 -5
- package/dist/locales/ru.json +5 -1
- package/dist/locales/vi.json +5 -1
- package/dist/stylesheet.css +253 -30
- package/package.json +3 -3
- package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.d.ts +0 -13
- package/dist/components/TwakeKnowledges/TwakeKnowledgeChip.js +0 -80
- package/dist/components/TwakeKnowledges/WebSearchChip.d.ts +0 -5
- package/dist/components/TwakeKnowledges/WebSearchChip.js +0 -75
|
@@ -28,7 +28,9 @@ var styles = {
|
|
|
28
28
|
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
29
29
|
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
30
30
|
"chip": "styles__chip___16BPR",
|
|
31
|
-
"selected-item--mobile": "styles__selected-item--mobile___gxVpw"
|
|
31
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
32
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
33
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
32
34
|
};
|
|
33
35
|
|
|
34
36
|
var AssistantAvatar = function AssistantAvatar(_ref) {
|
|
@@ -38,7 +38,9 @@ var styles = {
|
|
|
38
38
|
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
39
39
|
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
40
40
|
"chip": "styles__chip___16BPR",
|
|
41
|
-
"selected-item--mobile": "styles__selected-item--mobile___gxVpw"
|
|
41
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
42
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
43
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
42
44
|
};
|
|
43
45
|
|
|
44
46
|
var AssistantContainer = function AssistantContainer() {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function useSelectedAssistant(): {
|
|
2
|
+
assistants: object | any[];
|
|
3
|
+
selectedAssistant: any;
|
|
4
|
+
};
|
|
5
|
+
export default AssistantMenu;
|
|
6
|
+
/**
|
|
7
|
+
* The menu picking the assistant: one item per assistant, the default
|
|
8
|
+
* one, then "Create Agent". Anchored on `anchorRef`; `onSelect` is called
|
|
9
|
+
* with the id of the picked assistant, after it has been selected.
|
|
10
|
+
*/
|
|
11
|
+
declare function AssistantMenu({ anchorRef, open, onClose, onSelect }: {
|
|
12
|
+
anchorRef: any;
|
|
13
|
+
open: any;
|
|
14
|
+
onClose: any;
|
|
15
|
+
onSelect: any;
|
|
16
|
+
}): JSX.Element | null;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useSelectedAssistant = exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _twakeIcons = require("@linagora/twake-icons");
|
|
15
|
+
|
|
16
|
+
var _cozyClient = require("cozy-client");
|
|
17
|
+
|
|
18
|
+
var _ActionsMenu = _interopRequireDefault(require("cozy-ui/transpiled/react/ActionsMenu"));
|
|
19
|
+
|
|
20
|
+
var _ActionsMenuItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ActionsMenu/ActionsMenuItem"));
|
|
21
|
+
|
|
22
|
+
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
23
|
+
|
|
24
|
+
var _twakeI18n = require("twake-i18n");
|
|
25
|
+
|
|
26
|
+
var _AssistantSelectionItem = _interopRequireDefault(require("./AssistantSelectionItem"));
|
|
27
|
+
|
|
28
|
+
var _AssistantProvider = require("../AssistantProvider");
|
|
29
|
+
|
|
30
|
+
var _constants = require("../constants");
|
|
31
|
+
|
|
32
|
+
var _queries = require("../queries");
|
|
33
|
+
|
|
34
|
+
var styles = {
|
|
35
|
+
"assistant-container": "styles__assistant-container___2WDzp",
|
|
36
|
+
"trigger-button": "styles__trigger-button___yyIz8",
|
|
37
|
+
"assistant-icon": "styles__assistant-icon___1VM6i",
|
|
38
|
+
"assistant-icon--small": "styles__assistant-icon--small___3D9po",
|
|
39
|
+
"assistant-icon--composer": "styles__assistant-icon--composer___1i3dU",
|
|
40
|
+
"menu-item": "styles__menu-item___1jvWN",
|
|
41
|
+
"create-item": "styles__create-item___3ZARq",
|
|
42
|
+
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
43
|
+
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
44
|
+
"chip": "styles__chip___16BPR",
|
|
45
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
46
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
47
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The assistants of the instance and the selected one (the default
|
|
52
|
+
* assistant when the selected id matches none).
|
|
53
|
+
*/
|
|
54
|
+
var useSelectedAssistant = function useSelectedAssistant() {
|
|
55
|
+
var _useQuery;
|
|
56
|
+
|
|
57
|
+
var _useAssistant = (0, _AssistantProvider.useAssistant)(),
|
|
58
|
+
selectedAssistantId = _useAssistant.selectedAssistantId;
|
|
59
|
+
|
|
60
|
+
var assistantsQuery = (0, _queries.buildAssistantsQuery)();
|
|
61
|
+
var assistants = ((_useQuery = (0, _cozyClient.useQuery)(assistantsQuery.definition, assistantsQuery.options)) === null || _useQuery === void 0 ? void 0 : _useQuery.data) || [];
|
|
62
|
+
|
|
63
|
+
var selectedAssistant = assistants.find(function (assistant) {
|
|
64
|
+
return assistant._id === selectedAssistantId;
|
|
65
|
+
}) || _constants.DEFAULT_ASSISTANT;
|
|
66
|
+
|
|
67
|
+
return {
|
|
68
|
+
assistants: assistants,
|
|
69
|
+
selectedAssistant: selectedAssistant
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The menu picking the assistant: one item per assistant, the default
|
|
74
|
+
* one, then "Create Agent". Anchored on `anchorRef`; `onSelect` is called
|
|
75
|
+
* with the id of the picked assistant, after it has been selected.
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
exports.useSelectedAssistant = useSelectedAssistant;
|
|
80
|
+
|
|
81
|
+
var AssistantMenu = function AssistantMenu(_ref) {
|
|
82
|
+
var anchorRef = _ref.anchorRef,
|
|
83
|
+
open = _ref.open,
|
|
84
|
+
onClose = _ref.onClose,
|
|
85
|
+
onSelect = _ref.onSelect;
|
|
86
|
+
|
|
87
|
+
var _useI18n = (0, _twakeI18n.useI18n)(),
|
|
88
|
+
t = _useI18n.t;
|
|
89
|
+
|
|
90
|
+
var _useAssistant2 = (0, _AssistantProvider.useAssistant)(),
|
|
91
|
+
setIsOpenCreateAssistant = _useAssistant2.setIsOpenCreateAssistant,
|
|
92
|
+
setAssistantIdInAction = _useAssistant2.setAssistantIdInAction,
|
|
93
|
+
setIsOpenDeleteAssistant = _useAssistant2.setIsOpenDeleteAssistant,
|
|
94
|
+
setIsOpenEditAssistant = _useAssistant2.setIsOpenEditAssistant,
|
|
95
|
+
setSelectedAssistantId = _useAssistant2.setSelectedAssistantId;
|
|
96
|
+
|
|
97
|
+
var _useSelectedAssistant = useSelectedAssistant(),
|
|
98
|
+
assistants = _useSelectedAssistant.assistants,
|
|
99
|
+
selectedAssistant = _useSelectedAssistant.selectedAssistant;
|
|
100
|
+
|
|
101
|
+
var handleSelect = function handleSelect(assistantId) {
|
|
102
|
+
setSelectedAssistantId(assistantId);
|
|
103
|
+
if (onSelect) onSelect(assistantId);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var handleCreate = function handleCreate() {
|
|
107
|
+
setIsOpenCreateAssistant(true);
|
|
108
|
+
onClose();
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
if (!open) return null;
|
|
112
|
+
return /*#__PURE__*/_react.default.createElement(_ActionsMenu.default, {
|
|
113
|
+
open: true,
|
|
114
|
+
ref: anchorRef,
|
|
115
|
+
onClose: onClose,
|
|
116
|
+
actions: [],
|
|
117
|
+
anchorOrigin: {
|
|
118
|
+
vertical: 'bottom',
|
|
119
|
+
horizontal: 'left'
|
|
120
|
+
}
|
|
121
|
+
}, assistants.map(function (assistant) {
|
|
122
|
+
return /*#__PURE__*/_react.default.createElement(_AssistantSelectionItem.default, {
|
|
123
|
+
key: assistant._id,
|
|
124
|
+
assistant: assistant,
|
|
125
|
+
onClose: onClose,
|
|
126
|
+
onSelect: function onSelect() {
|
|
127
|
+
return handleSelect(assistant._id);
|
|
128
|
+
},
|
|
129
|
+
selectedAssistant: selectedAssistant,
|
|
130
|
+
setIsOpenDeleteAssistant: setIsOpenDeleteAssistant,
|
|
131
|
+
setAssistantIdInAction: setAssistantIdInAction,
|
|
132
|
+
setIsOpenEditAssistant: setIsOpenEditAssistant
|
|
133
|
+
});
|
|
134
|
+
}), /*#__PURE__*/_react.default.createElement(_AssistantSelectionItem.default, {
|
|
135
|
+
assistant: _constants.DEFAULT_ASSISTANT,
|
|
136
|
+
onClose: onClose,
|
|
137
|
+
onSelect: function onSelect() {
|
|
138
|
+
return handleSelect(_constants.DEFAULT_ASSISTANT._id);
|
|
139
|
+
},
|
|
140
|
+
selectedAssistant: selectedAssistant,
|
|
141
|
+
disableActions: true
|
|
142
|
+
}), /*#__PURE__*/_react.default.createElement(_ActionsMenuItem.default, {
|
|
143
|
+
onClick: handleCreate,
|
|
144
|
+
className: (0, _classnames.default)(styles['menu-item'], styles['create-item'])
|
|
145
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
146
|
+
className: "u-flex u-flex-items-center"
|
|
147
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
148
|
+
className: "u-flex u-flex-justify-center u-w-1-half u-mr-half"
|
|
149
|
+
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
150
|
+
icon: _twakeIcons.Plus,
|
|
151
|
+
size: 16,
|
|
152
|
+
color: "var(--primaryColor)"
|
|
153
|
+
})), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
154
|
+
variant: "body1",
|
|
155
|
+
color: "primary"
|
|
156
|
+
}, t('assistant_create.title')))));
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var _default = AssistantMenu;
|
|
160
|
+
exports.default = _default;
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
export default AssistantSelection;
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The chip naming the assistant of the conversation. With `selectable`
|
|
4
|
+
* it opens the assistant menu (the mobile header); otherwise it is an
|
|
5
|
+
* indicator, the assistant being picked from the sidebar. `disabled` is
|
|
6
|
+
* for a conversation that already started: its assistant cannot change.
|
|
7
|
+
* `borderless` drops the chip border (the mobile header and composer).
|
|
8
|
+
* `onSelect` is called with the id of the picked assistant.
|
|
9
|
+
*/
|
|
10
|
+
declare function AssistantSelection({ className, disabled, selectable, borderless, onSelect }: {
|
|
3
11
|
className: any;
|
|
4
12
|
disabled: any;
|
|
13
|
+
selectable?: boolean | undefined;
|
|
14
|
+
borderless?: boolean | undefined;
|
|
15
|
+
onSelect: any;
|
|
5
16
|
}): JSX.Element;
|
|
@@ -9,37 +9,23 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
15
|
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
17
|
|
|
18
18
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
19
|
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var _ActionsMenu = _interopRequireDefault(require("cozy-ui/transpiled/react/ActionsMenu"));
|
|
23
|
-
|
|
24
|
-
var _ActionsMenuItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ActionsMenu/ActionsMenuItem"));
|
|
20
|
+
var _twakeIcons = require("@linagora/twake-icons");
|
|
25
21
|
|
|
26
22
|
var _Chips = _interopRequireDefault(require("cozy-ui/transpiled/react/Chips"));
|
|
27
23
|
|
|
28
|
-
var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
|
|
29
|
-
|
|
30
|
-
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
31
|
-
|
|
32
|
-
var _twakeI18n = require("twake-i18n");
|
|
33
|
-
|
|
34
|
-
var _AssistantProvider = require("../AssistantProvider");
|
|
35
|
-
|
|
36
|
-
var _constants = require("../constants");
|
|
37
|
-
|
|
38
|
-
var _queries = require("../queries");
|
|
39
|
-
|
|
40
24
|
var _AssistantAvatar = _interopRequireDefault(require("./AssistantAvatar"));
|
|
41
25
|
|
|
42
|
-
var
|
|
26
|
+
var _AssistantMenu = _interopRequireWildcard(require("./AssistantMenu"));
|
|
27
|
+
|
|
28
|
+
var _SourceButton = require("../TwakeKnowledges/SourceButton");
|
|
43
29
|
|
|
44
30
|
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); }
|
|
45
31
|
|
|
@@ -56,21 +42,35 @@ var styles = {
|
|
|
56
42
|
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
57
43
|
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
58
44
|
"chip": "styles__chip___16BPR",
|
|
59
|
-
"selected-item--mobile": "styles__selected-item--mobile___gxVpw"
|
|
45
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
46
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
47
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
48
|
+
};
|
|
49
|
+
var sourceStyles = {
|
|
50
|
+
"source-button": "styles__source-button___9t9wI",
|
|
51
|
+
"source-button-image": "styles__source-button-image___2batD",
|
|
52
|
+
"source-button-image--inactive": "styles__source-button-image--inactive___3hs2C",
|
|
53
|
+
"source-chip": "styles__source-chip___1h51w",
|
|
54
|
+
"source-chip-icon": "styles__source-chip-icon___3-N0x",
|
|
55
|
+
"source-chip-label": "styles__source-chip-label___2mLIx"
|
|
60
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* The chip naming the assistant of the conversation. With `selectable`
|
|
59
|
+
* it opens the assistant menu (the mobile header); otherwise it is an
|
|
60
|
+
* indicator, the assistant being picked from the sidebar. `disabled` is
|
|
61
|
+
* for a conversation that already started: its assistant cannot change.
|
|
62
|
+
* `borderless` drops the chip border (the mobile header and composer).
|
|
63
|
+
* `onSelect` is called with the id of the picked assistant.
|
|
64
|
+
*/
|
|
61
65
|
|
|
62
66
|
var AssistantSelection = function AssistantSelection(_ref) {
|
|
63
|
-
var _useQuery;
|
|
64
|
-
|
|
65
67
|
var className = _ref.className,
|
|
66
|
-
disabled = _ref.disabled
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
isMobile = _useBreakpoints.isMobile;
|
|
73
|
-
|
|
68
|
+
disabled = _ref.disabled,
|
|
69
|
+
_ref$selectable = _ref.selectable,
|
|
70
|
+
selectable = _ref$selectable === void 0 ? true : _ref$selectable,
|
|
71
|
+
_ref$borderless = _ref.borderless,
|
|
72
|
+
borderless = _ref$borderless === void 0 ? false : _ref$borderless,
|
|
73
|
+
onSelect = _ref.onSelect;
|
|
74
74
|
var buttonRef = (0, _react.useRef)(null);
|
|
75
75
|
|
|
76
76
|
var _useState = (0, _react.useState)(false),
|
|
@@ -78,110 +78,50 @@ var AssistantSelection = function AssistantSelection(_ref) {
|
|
|
78
78
|
open = _useState2[0],
|
|
79
79
|
setOpen = _useState2[1];
|
|
80
80
|
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
setAssistantIdInAction = _useAssistant.setAssistantIdInAction,
|
|
84
|
-
setIsOpenDeleteAssistant = _useAssistant.setIsOpenDeleteAssistant,
|
|
85
|
-
setIsOpenEditAssistant = _useAssistant.setIsOpenEditAssistant,
|
|
86
|
-
selectedAssistantId = _useAssistant.selectedAssistantId,
|
|
87
|
-
setSelectedAssistantId = _useAssistant.setSelectedAssistantId;
|
|
81
|
+
var _useSelectedAssistant = (0, _AssistantMenu.useSelectedAssistant)(),
|
|
82
|
+
selectedAssistant = _useSelectedAssistant.selectedAssistant;
|
|
88
83
|
|
|
84
|
+
var isClickable = selectable && !disabled;
|
|
89
85
|
(0, _react.useEffect)(function () {
|
|
90
86
|
if (disabled) {
|
|
91
87
|
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
92
88
|
setOpen(false);
|
|
93
89
|
}
|
|
94
90
|
}, [disabled]);
|
|
95
|
-
var assistantsQuery = (0, _queries.buildAssistantsQuery)();
|
|
96
|
-
var assistants = ((_useQuery = (0, _cozyClient.useQuery)(assistantsQuery.definition, assistantsQuery.options)) === null || _useQuery === void 0 ? void 0 : _useQuery.data) || [];
|
|
97
|
-
|
|
98
|
-
var handleClick = function handleClick() {
|
|
99
|
-
if (disabled) return;
|
|
100
|
-
setOpen(true);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
var handleClose = function handleClose() {
|
|
104
|
-
setOpen(false);
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var handleCreate = function handleCreate() {
|
|
108
|
-
setIsOpenCreateAssistant(true);
|
|
109
|
-
handleClose();
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
var selectedAssistant = assistants.find(function (assistant) {
|
|
113
|
-
return assistant._id === selectedAssistantId;
|
|
114
|
-
}) || _constants.DEFAULT_ASSISTANT;
|
|
115
|
-
|
|
116
91
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
117
92
|
className: className,
|
|
118
93
|
ref: buttonRef
|
|
119
|
-
},
|
|
120
|
-
assistant: selectedAssistant
|
|
121
|
-
}) : /*#__PURE__*/_react.default.createElement(_Chips.default, (0, _extends2.default)({
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement(_Chips.default, (0, _extends2.default)({
|
|
122
95
|
icon: /*#__PURE__*/_react.default.createElement(_AssistantAvatar.default, {
|
|
123
96
|
className: styles['assistant-icon--composer'],
|
|
124
97
|
assistant: selectedAssistant
|
|
125
98
|
}),
|
|
126
|
-
label:
|
|
127
|
-
icon: _twakeIcons.Dropdown,
|
|
128
|
-
size: 16
|
|
129
|
-
}) : /*#__PURE__*/_react.default.createElement("span", {
|
|
99
|
+
label: /*#__PURE__*/_react.default.createElement("span", {
|
|
130
100
|
className: "u-flex u-flex-items-center"
|
|
131
|
-
}, selectedAssistant.name,
|
|
101
|
+
}, selectedAssistant.name, isClickable && /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
132
102
|
icon: _twakeIcons.Dropdown,
|
|
133
103
|
size: 16,
|
|
134
104
|
className: "u-ml-half u-flex-shrink-0"
|
|
135
|
-
}))
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
} : {
|
|
105
|
+
})),
|
|
106
|
+
className: (0, _classnames.default)(sourceStyles['source-chip'], (0, _defineProperty2.default)({}, styles['chip'], borderless)),
|
|
107
|
+
classes: _SourceButton.CHIP_CLASSES
|
|
108
|
+
}, isClickable ? {
|
|
140
109
|
clickable: true,
|
|
141
|
-
onClick:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
key: assistant._id,
|
|
154
|
-
assistant: assistant,
|
|
155
|
-
onClose: handleClose,
|
|
156
|
-
onSelect: function onSelect() {
|
|
157
|
-
return setSelectedAssistantId(assistant._id);
|
|
158
|
-
},
|
|
159
|
-
selectedAssistant: selectedAssistant,
|
|
160
|
-
setIsOpenDeleteAssistant: setIsOpenDeleteAssistant,
|
|
161
|
-
setAssistantIdInAction: setAssistantIdInAction,
|
|
162
|
-
setIsOpenEditAssistant: setIsOpenEditAssistant
|
|
163
|
-
});
|
|
164
|
-
}), /*#__PURE__*/_react.default.createElement(_AssistantSelectionItem.default, {
|
|
165
|
-
assistant: _constants.DEFAULT_ASSISTANT,
|
|
166
|
-
onClose: handleClose,
|
|
167
|
-
onSelect: function onSelect() {
|
|
168
|
-
return setSelectedAssistantId(_constants.DEFAULT_ASSISTANT._id);
|
|
110
|
+
onClick: function onClick() {
|
|
111
|
+
return setOpen(true);
|
|
112
|
+
},
|
|
113
|
+
'aria-haspopup': 'menu',
|
|
114
|
+
'aria-expanded': open
|
|
115
|
+
} : {
|
|
116
|
+
'aria-disabled': !!disabled
|
|
117
|
+
}))), /*#__PURE__*/_react.default.createElement(_AssistantMenu.default, {
|
|
118
|
+
anchorRef: buttonRef,
|
|
119
|
+
open: open,
|
|
120
|
+
onClose: function onClose() {
|
|
121
|
+
return setOpen(false);
|
|
169
122
|
},
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}), /*#__PURE__*/_react.default.createElement(_ActionsMenuItem.default, {
|
|
173
|
-
onClick: handleCreate,
|
|
174
|
-
className: (0, _classnames.default)(styles['menu-item'], styles['create-item'])
|
|
175
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
176
|
-
className: "u-flex u-flex-items-center"
|
|
177
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
178
|
-
className: "u-flex u-flex-justify-center u-w-1-half u-mr-half"
|
|
179
|
-
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
180
|
-
icon: _twakeIcons.Plus,
|
|
181
|
-
size: 16
|
|
182
|
-
})), /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
183
|
-
variant: "body1"
|
|
184
|
-
}, t('assistant_create.title'))))));
|
|
123
|
+
onSelect: onSelect
|
|
124
|
+
}));
|
|
185
125
|
};
|
|
186
126
|
|
|
187
127
|
var _default = AssistantSelection;
|
|
@@ -44,7 +44,9 @@ var styles = {
|
|
|
44
44
|
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
45
45
|
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
46
46
|
"chip": "styles__chip___16BPR",
|
|
47
|
-
"selected-item--mobile": "styles__selected-item--mobile___gxVpw"
|
|
47
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
48
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
49
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default AssistantSidebarItem;
|
|
2
|
+
/**
|
|
3
|
+
* The "Assistant" item of the sidebar: opens the assistant menu. Picking
|
|
4
|
+
* an assistant starts a new conversation with it, since a conversation
|
|
5
|
+
* keeps the assistant it started with.
|
|
6
|
+
*/
|
|
7
|
+
declare function AssistantSidebarItem({ className }: {
|
|
8
|
+
className: any;
|
|
9
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _twakeIcons = require("@linagora/twake-icons");
|
|
17
|
+
|
|
18
|
+
var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
|
|
19
|
+
|
|
20
|
+
var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
|
|
21
|
+
|
|
22
|
+
var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
|
|
23
|
+
|
|
24
|
+
var _twakeI18n = require("twake-i18n");
|
|
25
|
+
|
|
26
|
+
var _AssistantMenu = _interopRequireDefault(require("./AssistantMenu"));
|
|
27
|
+
|
|
28
|
+
var _useConversation2 = _interopRequireDefault(require("../../hooks/useConversation"));
|
|
29
|
+
|
|
30
|
+
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); }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
var styles = {
|
|
35
|
+
"assistant-container": "styles__assistant-container___2WDzp",
|
|
36
|
+
"trigger-button": "styles__trigger-button___yyIz8",
|
|
37
|
+
"assistant-icon": "styles__assistant-icon___1VM6i",
|
|
38
|
+
"assistant-icon--small": "styles__assistant-icon--small___3D9po",
|
|
39
|
+
"assistant-icon--composer": "styles__assistant-icon--composer___1i3dU",
|
|
40
|
+
"menu-item": "styles__menu-item___1jvWN",
|
|
41
|
+
"create-item": "styles__create-item___3ZARq",
|
|
42
|
+
"menu-item-icon-button": "styles__menu-item-icon-button___2q_ct",
|
|
43
|
+
"menu-item-actions": "styles__menu-item-actions___1ykUi",
|
|
44
|
+
"chip": "styles__chip___16BPR",
|
|
45
|
+
"selected-item--mobile": "styles__selected-item--mobile___gxVpw",
|
|
46
|
+
"sidebar-item": "styles__sidebar-item___2Kc78",
|
|
47
|
+
"sidebar-item-icon": "styles__sidebar-item-icon___2qKQL"
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The "Assistant" item of the sidebar: opens the assistant menu. Picking
|
|
52
|
+
* an assistant starts a new conversation with it, since a conversation
|
|
53
|
+
* keeps the assistant it started with.
|
|
54
|
+
*/
|
|
55
|
+
var AssistantSidebarItem = function AssistantSidebarItem(_ref) {
|
|
56
|
+
var className = _ref.className;
|
|
57
|
+
|
|
58
|
+
var _useI18n = (0, _twakeI18n.useI18n)(),
|
|
59
|
+
t = _useI18n.t;
|
|
60
|
+
|
|
61
|
+
var anchorRef = (0, _react.useRef)(null);
|
|
62
|
+
|
|
63
|
+
var _useState = (0, _react.useState)(false),
|
|
64
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
65
|
+
open = _useState2[0],
|
|
66
|
+
setOpen = _useState2[1];
|
|
67
|
+
|
|
68
|
+
var _useConversation = (0, _useConversation2.default)(),
|
|
69
|
+
createNewConversation = _useConversation.createNewConversation;
|
|
70
|
+
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
72
|
+
button: true,
|
|
73
|
+
ref: anchorRef,
|
|
74
|
+
onClick: function onClick() {
|
|
75
|
+
return setOpen(true);
|
|
76
|
+
},
|
|
77
|
+
"aria-haspopup": "menu",
|
|
78
|
+
"aria-expanded": open,
|
|
79
|
+
className: (0, _classnames.default)('u-ph-half', styles['sidebar-item'], className)
|
|
80
|
+
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, {
|
|
81
|
+
className: styles['sidebar-item-icon']
|
|
82
|
+
}, /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
83
|
+
icon: _twakeIcons.Apps,
|
|
84
|
+
size: 16,
|
|
85
|
+
"aria-hidden": "true"
|
|
86
|
+
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
87
|
+
className: "u-m-0",
|
|
88
|
+
primary: t('assistant.sidebar.assistant'),
|
|
89
|
+
primaryTypographyProps: {
|
|
90
|
+
variant: 'body2'
|
|
91
|
+
}
|
|
92
|
+
}), /*#__PURE__*/_react.default.createElement(_twakeIcons.Icon, {
|
|
93
|
+
icon: _twakeIcons.Dropdown,
|
|
94
|
+
size: 16,
|
|
95
|
+
color: "var(--iconTextColor)",
|
|
96
|
+
"aria-hidden": "true"
|
|
97
|
+
})), /*#__PURE__*/_react.default.createElement(_AssistantMenu.default, {
|
|
98
|
+
anchorRef: anchorRef,
|
|
99
|
+
open: open,
|
|
100
|
+
onClose: function onClose() {
|
|
101
|
+
return setOpen(false);
|
|
102
|
+
},
|
|
103
|
+
onSelect: createNewConversation
|
|
104
|
+
}));
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var _default = AssistantSidebarItem;
|
|
108
|
+
exports.default = _default;
|
|
@@ -57,3 +57,16 @@
|
|
|
57
57
|
border-radius 100%
|
|
58
58
|
color var(--white)
|
|
59
59
|
background-color var(--malachite)
|
|
60
|
+
|
|
61
|
+
.sidebar-item
|
|
62
|
+
// A sidebar item of the design: 36px min height, 8px gutter, 8px radius,
|
|
63
|
+
// 12px between the icon and the text
|
|
64
|
+
min-height 36px !important
|
|
65
|
+
padding-top 5px !important
|
|
66
|
+
padding-bottom 5px !important
|
|
67
|
+
border-radius 8px !important
|
|
68
|
+
gap 12px !important
|
|
69
|
+
|
|
70
|
+
.sidebar-item-icon
|
|
71
|
+
min-width 0 !important
|
|
72
|
+
color var(--iconTextColor)
|