@projectcor/maia-components 2.41.0 → 2.41.1-0
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/CHANGELOG.md +840 -0
- package/lib/App.js +44 -19
- package/lib/components/atoms/ApprovalBox/ApprovalBox.spec.js +135 -0
- package/lib/components/atoms/Checkbox/Checkbox.spec.js +27 -0
- package/lib/components/atoms/Chip/Chip.spec.js +82 -0
- package/lib/components/atoms/ContextMentionChip/ContextMentionChip.spec.js +29 -0
- package/lib/components/atoms/Fade/Fade.spec.js +31 -0
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.js +3 -1
- package/lib/components/atoms/FrequentlyUsedActions/FrequentlyUsedActions.styles.js +19 -7
- package/lib/components/atoms/MAIAButton/MAIAButton.spec.js +42 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.spec.js +300 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.js +7 -2
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.spec.js +69 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningBlock.styles.js +10 -14
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.js +1 -1
- package/lib/components/atoms/ReasoningBlock/ReasoningSteps.spec.js +59 -0
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.js +57 -37
- package/lib/components/atoms/ReasoningBlock/ReasoningTimeline.spec.js +58 -0
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.js +18 -12
- package/lib/components/atoms/ReasoningBlock/reasoningLiveNarration.spec.js +68 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.js +52 -0
- package/lib/components/atoms/ReasoningBlock/useCollapsibleHeight.spec.js +90 -0
- package/lib/components/atoms/SkillsDropdown/SkillsDropdown.spec.js +107 -0
- package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.spec.js +85 -0
- package/lib/components/atoms/Switch/Switch.spec.js +41 -0
- package/lib/components/index.js +2 -1
- package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.spec.js +77 -0
- package/lib/components/molecules/ChatAIContent/ChatAIContent.js +7 -3
- package/lib/components/molecules/ChatAIHome/ChatAIHome.js +21 -6
- package/lib/components/molecules/ChatAIHome/ChatAIHome.spec.js +246 -0
- package/lib/components/molecules/ChatAIMessages/ChatAICreateAgentActions.spec.js +104 -0
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +9 -3
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.spec.js +291 -0
- package/lib/components/molecules/ChatAIMessages/ChatAISuggestions.spec.js +46 -0
- package/lib/components/molecules/ChatAIMessages/newStyles.js +29 -26
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.js +8 -1
- package/lib/components/molecules/ChatAIModal/ChatAIModal.helpers.spec.js +148 -0
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +25 -8
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +65 -61
- package/lib/components/molecules/ChatAIModal/components/MaiaMinimizedPill/MaiaMinimizedPill.spec.js +37 -0
- package/lib/components/molecules/ChatAIMySkills/ChatAIMySkills.spec.js +128 -0
- package/lib/components/molecules/ChatFooter/ChatFooter.js +5 -3
- package/lib/components/molecules/ChatFooter/ChatFooter.spec.js +112 -0
- package/lib/components/molecules/ContextMentionInput/ContextMentionInput.spec.js +84 -0
- package/lib/components/molecules/MessageFeedback/MessageFeedback.spec.js +116 -0
- package/lib/components/molecules/Sidebar/Sidebar.js +28 -23
- package/lib/components/molecules/Sidebar/Sidebar.spec.js +234 -0
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +2 -2
- package/lib/components/organisms/AbmAgentModal/AbmAgentModal.spec.js +335 -0
- package/lib/components/organisms/AbmSkillModal/AbmSkillModal.spec.js +405 -0
- package/lib/components/organisms/ChatAI/ChatAI.spec.js +174 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.js +486 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.spec.js +231 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPage.styles.js +16 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.js +253 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.spec.js +139 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHeader.styles.js +13 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.js +250 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.spec.js +224 -0
- package/lib/components/organisms/ChatAIPage/ChatAIPageHome.styles.js +144 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.js +9 -0
- package/lib/components/organisms/ChatAIPage/getDaypart.spec.js +19 -0
- package/lib/components/organisms/ChatAIPage/index.js +3 -0
- package/lib/components/organisms/DeleteAgentModal/DeleteAgentModal.spec.js +59 -0
- package/lib/components/organisms/DeleteQuestionModal/DeleteQuestionModal.spec.js +79 -0
- package/lib/components/organisms/EditQuestionModal/EditQuestionModal.spec.js +86 -0
- package/lib/constants/permissions/index.js +2 -2
- package/lib/constants/permissions/utils.js +4 -1
- package/lib/constants/permissions/utils.spec.js +34 -0
- package/lib/dev/DevMaiaPage.js +30 -0
- package/lib/dev/DevReasoningTimeline.js +11 -17
- package/lib/hooks/useAgentModel/useCreateAgent.spec.js +95 -0
- package/lib/hooks/useAgentModel/useUpdateAgent.spec.js +96 -0
- package/lib/hooks/useCaretPosition.spec.js +58 -0
- package/lib/hooks/useChatManager/useChatManager.js +7 -7
- package/lib/hooks/useChatMessages/useChatMessages.spec.js +279 -0
- package/lib/hooks/useDebounce.spec.js +42 -0
- package/lib/hooks/useEvent.spec.js +40 -0
- package/lib/hooks/useFrequentlyUsedActions.js +31 -12
- package/lib/hooks/useIsMaiaPageRoute.js +26 -0
- package/lib/hooks/useIsMaiaPageRoute.spec.js +26 -0
- package/lib/hooks/useMentionAllowedTypes.spec.js +89 -0
- package/lib/hooks/useMinimizedPillNoveltyDot/useMinimizedPillNoveltyDot.spec.js +67 -0
- package/lib/hooks/useModal/useModal.spec.js +73 -0
- package/lib/hooks/useResize.spec.js +37 -0
- package/lib/hooks/useSkillsCatalog.spec.js +88 -0
- package/lib/hooks/useSnackBarManager/useSnackBarManager.spec.js +33 -0
- package/lib/hooks/useT.spec.js +20 -0
- package/lib/hooks/useToggle.spec.js +33 -0
- package/lib/index.js +5 -2
- package/lib/lang/br/index.js +26 -1
- package/lib/lang/en/index.js +26 -1
- package/lib/lang/es/index.js +26 -1
- package/lib/lang/fr/index.js +26 -1
- package/lib/lib/utils.js +9 -0
- package/lib/services/maia/Access/updateAccess.spec.js +108 -0
- package/lib/services/maia/Actions/getFrequentlyUsedActions.js +1 -1
- package/lib/services/maia/Actions/getFrequentlyUsedActions.spec.js +69 -0
- package/lib/services/maia/Actions/getSlashCommands.spec.js +74 -0
- package/lib/services/maia/Agents/createAgent.spec.js +55 -0
- package/lib/services/maia/Agents/deleteAgent.spec.js +42 -0
- package/lib/services/maia/Agents/fetchAgentDetail.spec.js +108 -0
- package/lib/services/maia/Agents/getAgentById.spec.js +55 -0
- package/lib/services/maia/Agents/getAgentSuggestions.spec.js +82 -0
- package/lib/services/maia/Agents/setAgentToolGroups.spec.js +45 -0
- package/lib/services/maia/Agents/toggleFavorite.spec.js +47 -0
- package/lib/services/maia/Agents/updateAgent.spec.js +48 -0
- package/lib/services/maia/Chats/deleteChat.spec.js +31 -0
- package/lib/services/maia/Chats/getChatMessages.spec.js +150 -0
- package/lib/services/maia/Chats/getChatsByUserId.spec.js +149 -0
- package/lib/services/maia/Chats/markSessionAsRead.spec.js +30 -0
- package/lib/services/maia/Chats/patchChat.spec.js +41 -0
- package/lib/services/maia/Chats/wasHelpfulChat.spec.js +28 -0
- package/lib/services/maia/Faqs/getFrequentlyAskedQuestions.spec.js +58 -0
- package/lib/services/maia/Knowledge/delete.spec.js +45 -0
- package/lib/services/maia/Knowledge/download.spec.js +78 -0
- package/lib/services/maia/Knowledge/save.spec.js +58 -0
- package/lib/services/maia/Orchestrator/orchestrator.spec.js +72 -0
- package/lib/services/maia/RecentClients/getRecentClients.spec.js +52 -0
- package/lib/services/maia/RecentContexts/getRecentContexts.spec.js +83 -0
- package/lib/services/maia/RecentProjects/getRecentProjects.spec.js +82 -0
- package/lib/services/maia/RecentTasks/getRecentTasks.spec.js +63 -0
- package/lib/services/maia/RecentUsers/getRecentUsers.spec.js +82 -0
- package/lib/services/maia/Skills/createSkill.spec.js +68 -0
- package/lib/services/maia/Skills/deleteSkill.spec.js +42 -0
- package/lib/services/maia/Skills/generateSkill.spec.js +48 -0
- package/lib/services/maia/Skills/getSkills.spec.js +152 -0
- package/lib/services/maia/Skills/updateSkill.spec.js +62 -0
- package/lib/services/maia/client.spec.js +56 -0
- package/lib/services/utils/fetchCOR.spec.js +211 -0
- package/lib/services/utils/getCookie.spec.js +20 -0
- package/lib/store/chatsSidebarOptimistic.spec.js +120 -0
- package/lib/store/maiaLastChatPersistence.spec.js +22 -0
- package/lib/store/maiaPanelSessionPersistence.spec.js +62 -0
- package/lib/store/sessions/sessionStreamManager.js +40 -52
- package/lib/store/sessions/sessions.types.spec.js +16 -0
- package/lib/store/sessions/useSessionsStore.spec.js +135 -0
- package/lib/store/useChatsStore.spec.js +619 -0
- package/lib/store/useFaqsStore.spec.js +57 -0
- package/lib/styles/cascade.js +29 -3
- package/lib/styles/transitions.js +3 -1
- package/lib/types/global.d.js +1 -1
- package/lib/utils/agentDisplayName.spec.js +44 -0
- package/lib/utils/autoApproveStorage.spec.js +25 -0
- package/lib/utils/chatInputFiles.spec.js +39 -0
- package/lib/utils/contextMentionLabel.spec.js +13 -0
- package/lib/utils/contextMentionTriggers.spec.js +38 -0
- package/lib/utils/contextMentionTypeLabel.spec.js +14 -0
- package/lib/utils/corConnectorMentionTypes.spec.js +23 -0
- package/lib/utils/fileDownloadHelper.spec.js +67 -0
- package/lib/utils/formatQuickActionMessage.spec.js +27 -0
- package/lib/utils/formatUnreadCount.spec.js +12 -0
- package/lib/utils/getUnitFileSize.spec.js +18 -0
- package/lib/utils/hitlAnalytics.spec.js +100 -0
- package/lib/utils/hoursPlannerQuickActionType.js +74 -1
- package/lib/utils/hoursPlannerQuickActionType.spec.js +64 -0
- package/lib/utils/maiaPageRoute.js +24 -0
- package/lib/utils/maiaPageRoute.spec.js +23 -0
- package/lib/utils/mapBackendLang.spec.js +19 -0
- package/lib/utils/navigateContextEntity.spec.js +50 -0
- package/lib/utils/normalizeAgentConnectors.spec.js +89 -0
- package/lib/utils/orchestratorSubagents.spec.js +32 -0
- package/lib/utils/reasoningMappers.spec.js +103 -0
- package/lib/utils/retryCompletion.spec.js +99 -0
- package/lib/utils/skillContentSize.spec.js +13 -0
- package/lib/utils/slashCommandMarker.spec.js +43 -0
- package/lib/utils/sortManagerHoursHomeFuas.spec.js +51 -0
- package/lib/utils/sseStreamContent.spec.js +31 -0
- package/lib/utils/streamActivityMessages.js +32 -19
- package/lib/utils/streamActivityMessages.spec.js +131 -0
- package/lib/utils/validateTrimmedFields.spec.js +26 -0
- package/package.json +1 -1
- package/README.md +0 -2
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
+
import { act, renderHook, waitFor } from '@testing-library/react';
|
|
5
|
+
import maia from '../../services/maia';
|
|
6
|
+
import { useSessionsStore } from '../../store/sessions/useSessionsStore';
|
|
7
|
+
import { useChatMessages } from './useChatMessages';
|
|
8
|
+
jest.mock('../../services/maia', function () {
|
|
9
|
+
return {
|
|
10
|
+
__esModule: true,
|
|
11
|
+
"default": {
|
|
12
|
+
Chats: {
|
|
13
|
+
getChatMessages: jest.fn()
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
jest.mock('../useProjects', function () {
|
|
19
|
+
return {
|
|
20
|
+
useProjects: function useProjects() {
|
|
21
|
+
return {
|
|
22
|
+
fetchProjects: function () {
|
|
23
|
+
var _fetchProjects = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
24
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
25
|
+
while (1) switch (_context.prev = _context.next) {
|
|
26
|
+
case 0:
|
|
27
|
+
return _context.abrupt("return", []);
|
|
28
|
+
case 1:
|
|
29
|
+
case "end":
|
|
30
|
+
return _context.stop();
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
}));
|
|
34
|
+
function fetchProjects() {
|
|
35
|
+
return _fetchProjects.apply(this, arguments);
|
|
36
|
+
}
|
|
37
|
+
return fetchProjects;
|
|
38
|
+
}()
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
jest.mock('../../context/global-context', function () {
|
|
44
|
+
return {
|
|
45
|
+
useGlobalContext: function useGlobalContext() {
|
|
46
|
+
return {
|
|
47
|
+
selectAgent: jest.fn(),
|
|
48
|
+
setChipsProject: jest.fn(),
|
|
49
|
+
setProject: jest.fn(),
|
|
50
|
+
setClient: jest.fn(),
|
|
51
|
+
setTask: jest.fn()
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
jest.mock('../useT', function () {
|
|
57
|
+
return {
|
|
58
|
+
useT: function useT() {
|
|
59
|
+
return {
|
|
60
|
+
t: function t(key) {
|
|
61
|
+
return key;
|
|
62
|
+
},
|
|
63
|
+
i18n: {
|
|
64
|
+
language: 'es'
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
jest.mock('../../lang/utils', function () {
|
|
71
|
+
return {
|
|
72
|
+
mapCORLang: function mapCORLang(language) {
|
|
73
|
+
return language;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
jest.mock('../../context/cor-user', function () {
|
|
78
|
+
return {
|
|
79
|
+
useUser: function useUser() {
|
|
80
|
+
return {};
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
jest.mock('../useTabTaskDefault', function () {
|
|
85
|
+
return {
|
|
86
|
+
useTabTaskDefault: function useTabTaskDefault() {
|
|
87
|
+
return {
|
|
88
|
+
getTabTaskDefault: jest.fn(),
|
|
89
|
+
refetchTabTaskDefault: jest.fn()
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
jest.mock('../../store/useChatsStore', function () {
|
|
95
|
+
return {
|
|
96
|
+
getChatsStoreState: function getChatsStoreState() {
|
|
97
|
+
return {
|
|
98
|
+
isChatViewVisible: false
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
});
|
|
103
|
+
var currentUser = {
|
|
104
|
+
id: 'user',
|
|
105
|
+
name: 'User'
|
|
106
|
+
};
|
|
107
|
+
var message = function message(id) {
|
|
108
|
+
return {
|
|
109
|
+
id: id,
|
|
110
|
+
message: id,
|
|
111
|
+
date: new Date(),
|
|
112
|
+
user: currentUser
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
var getChatMessages = maia.Chats.getChatMessages;
|
|
116
|
+
beforeEach(function () {
|
|
117
|
+
useSessionsStore.getState().resetAll();
|
|
118
|
+
getChatMessages.mockReset();
|
|
119
|
+
});
|
|
120
|
+
it('keeps question/answer pairs together across three oldest-first pages and caches that order', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
|
|
121
|
+
var pages, _renderHook, result, container, expected;
|
|
122
|
+
return _regeneratorRuntime.wrap(function (_context5) {
|
|
123
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
124
|
+
case 0:
|
|
125
|
+
pages = [[message('initial-question'), message('initial-answer')], [message('followup-question'), message('followup-answer')], [message('final-answer')]];
|
|
126
|
+
pages.forEach(function (items, index) {
|
|
127
|
+
return getChatMessages.mockResolvedValueOnce({
|
|
128
|
+
items: items,
|
|
129
|
+
nextItem: index < 2 ? (index + 1) * 20 : null
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
_renderHook = renderHook(function () {
|
|
133
|
+
return useChatMessages({
|
|
134
|
+
chatId: 'chat',
|
|
135
|
+
currentUser: currentUser
|
|
136
|
+
});
|
|
137
|
+
}), result = _renderHook.result;
|
|
138
|
+
_context5.next = 1;
|
|
139
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
140
|
+
return _regeneratorRuntime.wrap(function (_context2) {
|
|
141
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
142
|
+
case 0:
|
|
143
|
+
_context2.next = 1;
|
|
144
|
+
return result.current.loadMessages();
|
|
145
|
+
case 1:
|
|
146
|
+
case "end":
|
|
147
|
+
return _context2.stop();
|
|
148
|
+
}
|
|
149
|
+
}, _callee2);
|
|
150
|
+
})));
|
|
151
|
+
case 1:
|
|
152
|
+
container = document.createElement('div');
|
|
153
|
+
container.scrollTop = 400;
|
|
154
|
+
_context5.next = 2;
|
|
155
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
156
|
+
return _regeneratorRuntime.wrap(function (_context3) {
|
|
157
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
158
|
+
case 0:
|
|
159
|
+
_context3.next = 1;
|
|
160
|
+
return result.current.loadMoreMessages(container);
|
|
161
|
+
case 1:
|
|
162
|
+
case "end":
|
|
163
|
+
return _context3.stop();
|
|
164
|
+
}
|
|
165
|
+
}, _callee3);
|
|
166
|
+
})));
|
|
167
|
+
case 2:
|
|
168
|
+
_context5.next = 3;
|
|
169
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
170
|
+
return _regeneratorRuntime.wrap(function (_context4) {
|
|
171
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
172
|
+
case 0:
|
|
173
|
+
_context4.next = 1;
|
|
174
|
+
return result.current.loadMoreMessages(container);
|
|
175
|
+
case 1:
|
|
176
|
+
case "end":
|
|
177
|
+
return _context4.stop();
|
|
178
|
+
}
|
|
179
|
+
}, _callee4);
|
|
180
|
+
})));
|
|
181
|
+
case 3:
|
|
182
|
+
expected = pages.flat().map(function (item) {
|
|
183
|
+
return item.id;
|
|
184
|
+
});
|
|
185
|
+
expect(result.current.messages.map(function (item) {
|
|
186
|
+
return item.id;
|
|
187
|
+
})).toEqual(expected);
|
|
188
|
+
expect(useSessionsStore.getState().getMessages('chat').map(function (item) {
|
|
189
|
+
return item.id;
|
|
190
|
+
})).toEqual(expected);
|
|
191
|
+
expect(getChatMessages.mock.calls.map(function (_ref5) {
|
|
192
|
+
var _ref6 = _slicedToArray(_ref5, 1),
|
|
193
|
+
params = _ref6[0];
|
|
194
|
+
return params.offset;
|
|
195
|
+
})).toEqual([0, 20, 40]);
|
|
196
|
+
expect(result.current.hasMoreMessages).toBe(false);
|
|
197
|
+
_context5.next = 4;
|
|
198
|
+
return waitFor(function () {
|
|
199
|
+
return expect(container.scrollTop).toBe(400);
|
|
200
|
+
});
|
|
201
|
+
case 4:
|
|
202
|
+
case "end":
|
|
203
|
+
return _context5.stop();
|
|
204
|
+
}
|
|
205
|
+
}, _callee5);
|
|
206
|
+
})));
|
|
207
|
+
it('loads newer pages at the bottom rather than at the top', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {
|
|
208
|
+
var _renderHook2, result, container;
|
|
209
|
+
return _regeneratorRuntime.wrap(function (_context8) {
|
|
210
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
211
|
+
case 0:
|
|
212
|
+
getChatMessages.mockResolvedValueOnce({
|
|
213
|
+
items: [message('first')],
|
|
214
|
+
nextItem: 20
|
|
215
|
+
});
|
|
216
|
+
getChatMessages.mockResolvedValueOnce({
|
|
217
|
+
items: [message('last')],
|
|
218
|
+
nextItem: null
|
|
219
|
+
});
|
|
220
|
+
_renderHook2 = renderHook(function () {
|
|
221
|
+
return useChatMessages({
|
|
222
|
+
chatId: 'chat',
|
|
223
|
+
currentUser: currentUser
|
|
224
|
+
});
|
|
225
|
+
}), result = _renderHook2.result;
|
|
226
|
+
_context8.next = 1;
|
|
227
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
|
|
228
|
+
return _regeneratorRuntime.wrap(function (_context6) {
|
|
229
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
230
|
+
case 0:
|
|
231
|
+
_context6.next = 1;
|
|
232
|
+
return result.current.loadMessages();
|
|
233
|
+
case 1:
|
|
234
|
+
case "end":
|
|
235
|
+
return _context6.stop();
|
|
236
|
+
}
|
|
237
|
+
}, _callee6);
|
|
238
|
+
})));
|
|
239
|
+
case 1:
|
|
240
|
+
container = document.createElement('div');
|
|
241
|
+
Object.defineProperties(container, {
|
|
242
|
+
scrollHeight: {
|
|
243
|
+
value: 1000
|
|
244
|
+
},
|
|
245
|
+
clientHeight: {
|
|
246
|
+
value: 200
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
act(function () {
|
|
250
|
+
return result.current.handleScroll(container);
|
|
251
|
+
});
|
|
252
|
+
expect(getChatMessages).toHaveBeenCalledTimes(1);
|
|
253
|
+
container.scrollTop = 790;
|
|
254
|
+
_context8.next = 2;
|
|
255
|
+
return act(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
|
|
256
|
+
return _regeneratorRuntime.wrap(function (_context7) {
|
|
257
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
258
|
+
case 0:
|
|
259
|
+
return _context7.abrupt("return", result.current.handleScroll(container));
|
|
260
|
+
case 1:
|
|
261
|
+
case "end":
|
|
262
|
+
return _context7.stop();
|
|
263
|
+
}
|
|
264
|
+
}, _callee7);
|
|
265
|
+
})));
|
|
266
|
+
case 2:
|
|
267
|
+
_context8.next = 3;
|
|
268
|
+
return waitFor(function () {
|
|
269
|
+
return expect(result.current.messages.map(function (item) {
|
|
270
|
+
return item.id;
|
|
271
|
+
})).toEqual(['first', 'last']);
|
|
272
|
+
});
|
|
273
|
+
case 3:
|
|
274
|
+
case "end":
|
|
275
|
+
return _context8.stop();
|
|
276
|
+
}
|
|
277
|
+
}, _callee8);
|
|
278
|
+
})));
|
|
279
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwid2FpdEZvciIsIm1haWEiLCJ1c2VTZXNzaW9uc1N0b3JlIiwidXNlQ2hhdE1lc3NhZ2VzIiwiamVzdCIsIm1vY2siLCJfX2VzTW9kdWxlIiwiQ2hhdHMiLCJnZXRDaGF0TWVzc2FnZXMiLCJmbiIsInVzZVByb2plY3RzIiwiZmV0Y2hQcm9qZWN0cyIsIl9mZXRjaFByb2plY3RzIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImFicnVwdCIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsInVzZUdsb2JhbENvbnRleHQiLCJzZWxlY3RBZ2VudCIsInNldENoaXBzUHJvamVjdCIsInNldFByb2plY3QiLCJzZXRDbGllbnQiLCJzZXRUYXNrIiwidXNlVCIsInQiLCJrZXkiLCJpMThuIiwibGFuZ3VhZ2UiLCJtYXBDT1JMYW5nIiwidXNlVXNlciIsInVzZVRhYlRhc2tEZWZhdWx0IiwiZ2V0VGFiVGFza0RlZmF1bHQiLCJyZWZldGNoVGFiVGFza0RlZmF1bHQiLCJnZXRDaGF0c1N0b3JlU3RhdGUiLCJpc0NoYXRWaWV3VmlzaWJsZSIsImN1cnJlbnRVc2VyIiwiaWQiLCJuYW1lIiwibWVzc2FnZSIsImRhdGUiLCJEYXRlIiwidXNlciIsImJlZm9yZUVhY2giLCJnZXRTdGF0ZSIsInJlc2V0QWxsIiwibW9ja1Jlc2V0IiwiaXQiLCJfY2FsbGVlNSIsInBhZ2VzIiwiX3JlbmRlckhvb2siLCJyZXN1bHQiLCJjb250YWluZXIiLCJleHBlY3RlZCIsIl9jb250ZXh0NSIsImZvckVhY2giLCJpdGVtcyIsImluZGV4IiwibW9ja1Jlc29sdmVkVmFsdWVPbmNlIiwibmV4dEl0ZW0iLCJjaGF0SWQiLCJfY2FsbGVlMiIsIl9jb250ZXh0MiIsImN1cnJlbnQiLCJsb2FkTWVzc2FnZXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzY3JvbGxUb3AiLCJfY2FsbGVlMyIsIl9jb250ZXh0MyIsImxvYWRNb3JlTWVzc2FnZXMiLCJfY2FsbGVlNCIsIl9jb250ZXh0NCIsImZsYXQiLCJtYXAiLCJpdGVtIiwiZXhwZWN0IiwibWVzc2FnZXMiLCJ0b0VxdWFsIiwiZ2V0TWVzc2FnZXMiLCJjYWxscyIsIl9yZWY1IiwiX3JlZjYiLCJfc2xpY2VkVG9BcnJheSIsInBhcmFtcyIsIm9mZnNldCIsImhhc01vcmVNZXNzYWdlcyIsInRvQmUiLCJfY2FsbGVlOCIsIl9yZW5kZXJIb29rMiIsIl9jb250ZXh0OCIsIl9jYWxsZWU2IiwiX2NvbnRleHQ2IiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsInNjcm9sbEhlaWdodCIsInZhbHVlIiwiY2xpZW50SGVpZ2h0IiwiaGFuZGxlU2Nyb2xsIiwidG9IYXZlQmVlbkNhbGxlZFRpbWVzIiwiX2NhbGxlZTciLCJfY29udGV4dDciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlQ2hhdE1lc3NhZ2VzL3VzZUNoYXRNZXNzYWdlcy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjdCwgcmVuZGVySG9vaywgd2FpdEZvciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnXG5pbXBvcnQgbWFpYSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWlhJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbnNTdG9yZSB9IGZyb20gJy4uLy4uL3N0b3JlL3Nlc3Npb25zL3VzZVNlc3Npb25zU3RvcmUnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG5pbXBvcnQgeyB1c2VDaGF0TWVzc2FnZXMgfSBmcm9tICcuL3VzZUNoYXRNZXNzYWdlcydcblxuamVzdC5tb2NrKCcuLi8uLi9zZXJ2aWNlcy9tYWlhJywgKCkgPT4gKHsgX19lc01vZHVsZTogdHJ1ZSwgZGVmYXVsdDogeyBDaGF0czogeyBnZXRDaGF0TWVzc2FnZXM6IGplc3QuZm4oKSB9IH0gfSkpXG5qZXN0Lm1vY2soJy4uL3VzZVByb2plY3RzJywgKCkgPT4gKHsgdXNlUHJvamVjdHM6ICgpID0+ICh7IGZldGNoUHJvamVjdHM6IGFzeW5jICgpID0+IFtdIH0pIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0JywgKCkgPT4gKHtcbiAgdXNlR2xvYmFsQ29udGV4dDogKCkgPT4gKHtcbiAgICBzZWxlY3RBZ2VudDogamVzdC5mbigpLFxuICAgIHNldENoaXBzUHJvamVjdDogamVzdC5mbigpLFxuICAgIHNldFByb2plY3Q6IGplc3QuZm4oKSxcbiAgICBzZXRDbGllbnQ6IGplc3QuZm4oKSxcbiAgICBzZXRUYXNrOiBqZXN0LmZuKCksXG4gIH0pLFxufSkpXG5qZXN0Lm1vY2soJy4uL3VzZVQnLCAoKSA9PiAoeyB1c2VUOiAoKSA9PiAoeyB0OiAoa2V5OiBzdHJpbmcpID0+IGtleSwgaTE4bjogeyBsYW5ndWFnZTogJ2VzJyB9IH0pIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9sYW5nL3V0aWxzJywgKCkgPT4gKHsgbWFwQ09STGFuZzogKGxhbmd1YWdlOiBzdHJpbmcpID0+IGxhbmd1YWdlIH0pKVxuamVzdC5tb2NrKCcuLi8uLi9jb250ZXh0L2Nvci11c2VyJywgKCkgPT4gKHsgdXNlVXNlcjogKCkgPT4gKHt9KSB9KSlcbmplc3QubW9jaygnLi4vdXNlVGFiVGFza0RlZmF1bHQnLCAoKSA9PiAoe1xuICB1c2VUYWJUYXNrRGVmYXVsdDogKCkgPT4gKHsgZ2V0VGFiVGFza0RlZmF1bHQ6IGplc3QuZm4oKSwgcmVmZXRjaFRhYlRhc2tEZWZhdWx0OiBqZXN0LmZuKCkgfSksXG59KSlcbmplc3QubW9jaygnLi4vLi4vc3RvcmUvdXNlQ2hhdHNTdG9yZScsICgpID0+ICh7IGdldENoYXRzU3RvcmVTdGF0ZTogKCkgPT4gKHsgaXNDaGF0Vmlld1Zpc2libGU6IGZhbHNlIH0pIH0pKVxuXG5jb25zdCBjdXJyZW50VXNlciA9IHsgaWQ6ICd1c2VyJywgbmFtZTogJ1VzZXInIH1cbmNvbnN0IG1lc3NhZ2UgPSAoaWQ6IHN0cmluZyk6IENoYXRNZXNzYWdlID0+ICh7IGlkLCBtZXNzYWdlOiBpZCwgZGF0ZTogbmV3IERhdGUoKSwgdXNlcjogY3VycmVudFVzZXIgfSlcbmNvbnN0IGdldENoYXRNZXNzYWdlcyA9IG1haWEuQ2hhdHMuZ2V0Q2hhdE1lc3NhZ2VzIGFzIGplc3QuTW9ja1xuXG5iZWZvcmVFYWNoKCgpID0+IHtcbiAgdXNlU2Vzc2lvbnNTdG9yZS5nZXRTdGF0ZSgpLnJlc2V0QWxsKClcbiAgZ2V0Q2hhdE1lc3NhZ2VzLm1vY2tSZXNldCgpXG59KVxuXG5pdCgna2VlcHMgcXVlc3Rpb24vYW5zd2VyIHBhaXJzIHRvZ2V0aGVyIGFjcm9zcyB0aHJlZSBvbGRlc3QtZmlyc3QgcGFnZXMgYW5kIGNhY2hlcyB0aGF0IG9yZGVyJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBwYWdlcyA9IFtcbiAgICBbbWVzc2FnZSgnaW5pdGlhbC1xdWVzdGlvbicpLCBtZXNzYWdlKCdpbml0aWFsLWFuc3dlcicpXSxcbiAgICBbbWVzc2FnZSgnZm9sbG93dXAtcXVlc3Rpb24nKSwgbWVzc2FnZSgnZm9sbG93dXAtYW5zd2VyJyldLFxuICAgIFttZXNzYWdlKCdmaW5hbC1hbnN3ZXInKV0sXG4gIF1cbiAgcGFnZXMuZm9yRWFjaCgoaXRlbXMsIGluZGV4KSA9PlxuICAgIGdldENoYXRNZXNzYWdlcy5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2Uoe1xuICAgICAgaXRlbXMsXG4gICAgICBuZXh0SXRlbTogaW5kZXggPCAyID8gKGluZGV4ICsgMSkgKiAyMCA6IG51bGwsXG4gICAgfSlcbiAgKVxuICBjb25zdCB7IHJlc3VsdCB9ID0gcmVuZGVySG9vaygoKSA9PiB1c2VDaGF0TWVzc2FnZXMoeyBjaGF0SWQ6ICdjaGF0JywgY3VycmVudFVzZXIgfSkpXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1lc3NhZ2VzKClcbiAgfSlcblxuICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICBjb250YWluZXIuc2Nyb2xsVG9wID0gNDAwXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gIH0pXG4gIGF3YWl0IGFjdChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVzdWx0LmN1cnJlbnQubG9hZE1vcmVNZXNzYWdlcyhjb250YWluZXIpXG4gIH0pXG5cbiAgY29uc3QgZXhwZWN0ZWQgPSBwYWdlcy5mbGF0KCkubWFwKGl0ZW0gPT4gaXRlbS5pZClcbiAgZXhwZWN0KHJlc3VsdC5jdXJyZW50Lm1lc3NhZ2VzLm1hcChpdGVtID0+IGl0ZW0uaWQpKS50b0VxdWFsKGV4cGVjdGVkKVxuICBleHBlY3QoXG4gICAgdXNlU2Vzc2lvbnNTdG9yZVxuICAgICAgLmdldFN0YXRlKClcbiAgICAgIC5nZXRNZXNzYWdlcygnY2hhdCcpXG4gICAgICAubWFwKGl0ZW0gPT4gaXRlbS5pZClcbiAgKS50b0VxdWFsKGV4cGVjdGVkKVxuICBleHBlY3QoZ2V0Q2hhdE1lc3NhZ2VzLm1vY2suY2FsbHMubWFwKChbcGFyYW1zXSkgPT4gcGFyYW1zLm9mZnNldCkpLnRvRXF1YWwoWzAsIDIwLCA0MF0pXG4gIGV4cGVjdChyZXN1bHQuY3VycmVudC5oYXNNb3JlTWVzc2FnZXMpLnRvQmUoZmFsc2UpXG4gIGF3YWl0IHdhaXRGb3IoKCkgPT4gZXhwZWN0KGNvbnRhaW5lci5zY3JvbGxUb3ApLnRvQmUoNDAwKSlcbn0pXG5cbml0KCdsb2FkcyBuZXdlciBwYWdlcyBhdCB0aGUgYm90dG9tIHJhdGhlciB0aGFuIGF0IHRoZSB0b3AnLCBhc3luYyAoKSA9PiB7XG4gIGdldENoYXRNZXNzYWdlcy5tb2NrUmVzb2x2ZWRWYWx1ZU9uY2UoeyBpdGVtczogW21lc3NhZ2UoJ2ZpcnN0JyldLCBuZXh0SXRlbTogMjAgfSlcbiAgZ2V0Q2hhdE1lc3NhZ2VzLm1vY2tSZXNvbHZlZFZhbHVlT25jZSh7IGl0ZW1zOiBbbWVzc2FnZSgnbGFzdCcpXSwgbmV4dEl0ZW06IG51bGwgfSlcbiAgY29uc3QgeyByZXN1bHQgfSA9IHJlbmRlckhvb2soKCkgPT4gdXNlQ2hhdE1lc3NhZ2VzKHsgY2hhdElkOiAnY2hhdCcsIGN1cnJlbnRVc2VyIH0pKVxuICBhd2FpdCBhY3QoYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlc3VsdC5jdXJyZW50LmxvYWRNZXNzYWdlcygpXG4gIH0pXG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnRhaW5lciwgeyBzY3JvbGxIZWlnaHQ6IHsgdmFsdWU6IDEwMDAgfSwgY2xpZW50SGVpZ2h0OiB7IHZhbHVlOiAyMDAgfSB9KVxuXG4gIGFjdCgoKSA9PiByZXN1bHQuY3VycmVudC5oYW5kbGVTY3JvbGwoY29udGFpbmVyKSlcbiAgZXhwZWN0KGdldENoYXRNZXNzYWdlcykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpXG4gIGNvbnRhaW5lci5zY3JvbGxUb3AgPSA3OTBcbiAgYXdhaXQgYWN0KGFzeW5jICgpID0+IHJlc3VsdC5jdXJyZW50LmhhbmRsZVNjcm9sbChjb250YWluZXIpKVxuICBhd2FpdCB3YWl0Rm9yKCgpID0+IGV4cGVjdChyZXN1bHQuY3VycmVudC5tZXNzYWdlcy5tYXAoaXRlbSA9PiBpdGVtLmlkKSkudG9FcXVhbChbJ2ZpcnN0JywgJ2xhc3QnXSkpXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxHQUFHLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFRLHdCQUF3QjtBQUNqRSxPQUFPQyxJQUFJLE1BQU0scUJBQXFCO0FBQ3RDLFNBQVNDLGdCQUFnQixRQUFRLHVDQUF1QztBQUV4RSxTQUFTQyxlQUFlLFFBQVEsbUJBQW1CO0FBRW5EQyxJQUFJLENBQUNDLElBQUksQ0FBQyxx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
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { act, renderHook } from '@testing-library/react';
|
|
2
|
+
import { useDebounce } from './useDebounce';
|
|
3
|
+
describe('useDebounce', function () {
|
|
4
|
+
beforeEach(function () {
|
|
5
|
+
jest.useFakeTimers();
|
|
6
|
+
});
|
|
7
|
+
afterEach(function () {
|
|
8
|
+
jest.useRealTimers();
|
|
9
|
+
});
|
|
10
|
+
it('returns the initial value immediately', function () {
|
|
11
|
+
var _renderHook = renderHook(function () {
|
|
12
|
+
return useDebounce('hola', 300);
|
|
13
|
+
}),
|
|
14
|
+
result = _renderHook.result;
|
|
15
|
+
expect(result.current).toBe('hola');
|
|
16
|
+
});
|
|
17
|
+
it('updates the value only after the delay', function () {
|
|
18
|
+
var _renderHook2 = renderHook(function (_ref) {
|
|
19
|
+
var value = _ref.value;
|
|
20
|
+
return useDebounce(value, 300);
|
|
21
|
+
}, {
|
|
22
|
+
initialProps: {
|
|
23
|
+
value: 'hola'
|
|
24
|
+
}
|
|
25
|
+
}),
|
|
26
|
+
result = _renderHook2.result,
|
|
27
|
+
rerender = _renderHook2.rerender;
|
|
28
|
+
rerender({
|
|
29
|
+
value: 'chau'
|
|
30
|
+
});
|
|
31
|
+
expect(result.current).toBe('hola');
|
|
32
|
+
act(function () {
|
|
33
|
+
jest.advanceTimersByTime(299);
|
|
34
|
+
});
|
|
35
|
+
expect(result.current).toBe('hola');
|
|
36
|
+
act(function () {
|
|
37
|
+
jest.advanceTimersByTime(1);
|
|
38
|
+
});
|
|
39
|
+
expect(result.current).toBe('chau');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwidXNlRGVib3VuY2UiLCJkZXNjcmliZSIsImJlZm9yZUVhY2giLCJqZXN0IiwidXNlRmFrZVRpbWVycyIsImFmdGVyRWFjaCIsInVzZVJlYWxUaW1lcnMiLCJpdCIsIl9yZW5kZXJIb29rIiwicmVzdWx0IiwiZXhwZWN0IiwiY3VycmVudCIsInRvQmUiLCJfcmVuZGVySG9vazIiLCJfcmVmIiwidmFsdWUiLCJpbml0aWFsUHJvcHMiLCJyZXJlbmRlciIsImFkdmFuY2VUaW1lcnNCeVRpbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlRGVib3VuY2Uuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhY3QsIHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuXG5kZXNjcmliZSgndXNlRGVib3VuY2UnLCAoKSA9PiB7XG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG4gIH0pXG5cbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KCdyZXR1cm5zIHRoZSBpbml0aWFsIHZhbHVlIGltbWVkaWF0ZWx5JywgKCkgPT4ge1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSByZW5kZXJIb29rKCgpID0+IHVzZURlYm91bmNlKCdob2xhJywgMzAwKSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoJ2hvbGEnKVxuICB9KVxuXG4gIGl0KCd1cGRhdGVzIHRoZSB2YWx1ZSBvbmx5IGFmdGVyIHRoZSBkZWxheScsICgpID0+IHtcbiAgICBjb25zdCB7IHJlc3VsdCwgcmVyZW5kZXIgfSA9IHJlbmRlckhvb2soKHsgdmFsdWUgfSkgPT4gdXNlRGVib3VuY2UodmFsdWUsIDMwMCksIHtcbiAgICAgIGluaXRpYWxQcm9wczogeyB2YWx1ZTogJ2hvbGEnIH0sXG4gICAgfSlcblxuICAgIHJlcmVuZGVyKHsgdmFsdWU6ICdjaGF1JyB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZSgnaG9sYScpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDI5OSlcbiAgICB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZSgnaG9sYScpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDEpXG4gICAgfSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoJ2NoYXUnKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsR0FBRyxFQUFFQyxVQUFVLFFBQVEsd0JBQXdCO0FBQ3hELFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBRTNDQyxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQU07RUFDNUJDLFVBQVUsQ0FBQyxZQUFNO0lBQ2ZDLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUM7RUFDdEIsQ0FBQyxDQUFDO0VBRUZDLFNBQVMsQ0FBQyxZQUFNO0lBQ2RGLElBQUksQ0FBQ0csYUFBYSxDQUFDLENBQUM7RUFDdEIsQ0FBQyxDQUFDO0VBRUZDLEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxZQUFNO0lBQ2hELElBQUFDLFdBQUEsR0FBbUJULFVBQVUsQ0FBQztRQUFBLE9BQU1DLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO01BQUEsRUFBQztNQUFyRFMsTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07SUFDZEMsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0VBQ3JDLENBQUMsQ0FBQztFQUVGTCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsWUFBTTtJQUNqRCxJQUFBTSxZQUFBLEdBQTZCZCxVQUFVLENBQUMsVUFBQWUsSUFBQTtRQUFBLElBQUdDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO1FBQUEsT0FBT2YsV0FBVyxDQUFDZSxLQUFLLEVBQUUsR0FBRyxDQUFDO01BQUEsR0FBRTtRQUM5RUMsWUFBWSxFQUFFO1VBQUVELEtBQUssRUFBRTtRQUFPO01BQ2hDLENBQUMsQ0FBQztNQUZNTixNQUFNLEdBQUFJLFlBQUEsQ0FBTkosTUFBTTtNQUFFUSxRQUFRLEdBQUFKLFlBQUEsQ0FBUkksUUFBUTtJQUl4QkEsUUFBUSxDQUFDO01BQUVGLEtBQUssRUFBRTtJQUFPLENBQUMsQ0FBQztJQUMzQkwsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRW5DZCxHQUFHLENBQUMsWUFBTTtNQUNSSyxJQUFJLENBQUNlLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztJQUMvQixDQUFDLENBQUM7SUFDRlIsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBRW5DZCxHQUFHLENBQUMsWUFBTTtNQUNSSyxJQUFJLENBQUNlLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRlIsTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxDQUFDO0VBQ3JDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { renderHook } from '@testing-library/react';
|
|
2
|
+
import dispatchAmplitude from '@projectcor/cor-commons/lib/utils/dispatchAmplitude';
|
|
3
|
+
import { EVENTS, useEvent } from './useEvent';
|
|
4
|
+
jest.mock('@projectcor/cor-commons/lib/utils/dispatchAmplitude', function () {
|
|
5
|
+
return jest.fn();
|
|
6
|
+
}, {
|
|
7
|
+
virtual: true
|
|
8
|
+
});
|
|
9
|
+
jest.mock('../context/cor-user', function () {
|
|
10
|
+
return {
|
|
11
|
+
useUser: function useUser() {
|
|
12
|
+
return {
|
|
13
|
+
company_id: 10,
|
|
14
|
+
id: 99
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
describe('useEvent', function () {
|
|
20
|
+
it('dispatches Amplitude with company and user ids', function () {
|
|
21
|
+
var _renderHook = renderHook(function () {
|
|
22
|
+
return useEvent();
|
|
23
|
+
}),
|
|
24
|
+
result = _renderHook.result;
|
|
25
|
+
result.current('AI_CHAT_SEND', {
|
|
26
|
+
extra: true
|
|
27
|
+
});
|
|
28
|
+
expect(dispatchAmplitude).toHaveBeenCalledWith('AI_CHAT_SEND', 10, {
|
|
29
|
+
companyId: 10,
|
|
30
|
+
userId: 99,
|
|
31
|
+
extra: true
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
it('exposes skill analytics event names', function () {
|
|
35
|
+
expect(EVENTS.aiSidebarMySkills).toBe('AI_SIDEBAR_MY_SKILLS');
|
|
36
|
+
expect(EVENTS.aiChatSkillSelect).toBe('AI_CHAT_SKILL_SELECT');
|
|
37
|
+
expect(EVENTS.aiChatSkillUse).toBe('AI_CHAT_SKILL_USE');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZW5kZXJIb29rIiwiZGlzcGF0Y2hBbXBsaXR1ZGUiLCJFVkVOVFMiLCJ1c2VFdmVudCIsImplc3QiLCJtb2NrIiwiZm4iLCJ2aXJ0dWFsIiwidXNlVXNlciIsImNvbXBhbnlfaWQiLCJpZCIsImRlc2NyaWJlIiwiaXQiLCJfcmVuZGVySG9vayIsInJlc3VsdCIsImN1cnJlbnQiLCJleHRyYSIsImV4cGVjdCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiY29tcGFueUlkIiwidXNlcklkIiwiYWlTaWRlYmFyTXlTa2lsbHMiLCJ0b0JlIiwiYWlDaGF0U2tpbGxTZWxlY3QiLCJhaUNoYXRTa2lsbFVzZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFdmVudC5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IGRpc3BhdGNoQW1wbGl0dWRlIGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZSdcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuL3VzZUV2ZW50J1xuXG5qZXN0Lm1vY2soJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi91dGlscy9kaXNwYXRjaEFtcGxpdHVkZScsICgpID0+IGplc3QuZm4oKSwgeyB2aXJ0dWFsOiB0cnVlIH0pXG5qZXN0Lm1vY2soJy4uL2NvbnRleHQvY29yLXVzZXInLCAoKSA9PiAoe1xuICB1c2VVc2VyOiAoKSA9PiAoeyBjb21wYW55X2lkOiAxMCwgaWQ6IDk5IH0pLFxufSkpXG5cbmRlc2NyaWJlKCd1c2VFdmVudCcsICgpID0+IHtcbiAgaXQoJ2Rpc3BhdGNoZXMgQW1wbGl0dWRlIHdpdGggY29tcGFueSBhbmQgdXNlciBpZHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyByZXN1bHQgfSA9IHJlbmRlckhvb2soKCkgPT4gdXNlRXZlbnQoKSlcblxuICAgIHJlc3VsdC5jdXJyZW50KCdBSV9DSEFUX1NFTkQnLCB7IGV4dHJhOiB0cnVlIH0pXG5cbiAgICBleHBlY3QoZGlzcGF0Y2hBbXBsaXR1ZGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdBSV9DSEFUX1NFTkQnLCAxMCwge1xuICAgICAgY29tcGFueUlkOiAxMCxcbiAgICAgIHVzZXJJZDogOTksXG4gICAgICBleHRyYTogdHJ1ZSxcbiAgICB9KVxuICB9KVxuXG4gIGl0KCdleHBvc2VzIHNraWxsIGFuYWx5dGljcyBldmVudCBuYW1lcycsICgpID0+IHtcbiAgICBleHBlY3QoRVZFTlRTLmFpU2lkZWJhck15U2tpbGxzKS50b0JlKCdBSV9TSURFQkFSX01ZX1NLSUxMUycpXG4gICAgZXhwZWN0KEVWRU5UUy5haUNoYXRTa2lsbFNlbGVjdCkudG9CZSgnQUlfQ0hBVF9TS0lMTF9TRUxFQ1QnKVxuICAgIGV4cGVjdChFVkVOVFMuYWlDaGF0U2tpbGxVc2UpLnRvQmUoJ0FJX0NIQVRfU0tJTExfVVNFJylcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFVBQVUsUUFBUSx3QkFBd0I7QUFDbkQsT0FBT0MsaUJBQWlCLE1BQU0scURBQXFEO0FBQ25GLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLFlBQVk7QUFFN0NDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLHFEQUFxRCxFQUFFO0VBQUEsT0FBTUQsSUFBSSxDQUFDRSxFQUFFLENBQUMsQ0FBQztBQUFBLEdBQUU7RUFBRUMsT0FBTyxFQUFFO0FBQUssQ0FBQyxDQUFDO0FBQ3BHSCxJQUFJLENBQUNDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtFQUFBLE9BQU87SUFDdENHLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO01BQUEsT0FBUztRQUFFQyxVQUFVLEVBQUUsRUFBRTtRQUFFQyxFQUFFLEVBQUU7TUFBRyxDQUFDO0lBQUE7RUFDNUMsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVIQyxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07RUFDekJDLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxZQUFNO0lBQ3pELElBQUFDLFdBQUEsR0FBbUJiLFVBQVUsQ0FBQztRQUFBLE9BQU1HLFFBQVEsQ0FBQyxDQUFDO01BQUEsRUFBQztNQUF2Q1csTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07SUFFZEEsTUFBTSxDQUFDQyxPQUFPLENBQUMsY0FBYyxFQUFFO01BQUVDLEtBQUssRUFBRTtJQUFLLENBQUMsQ0FBQztJQUUvQ0MsTUFBTSxDQUFDaEIsaUJBQWlCLENBQUMsQ0FBQ2lCLG9CQUFvQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUU7TUFDakVDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLE1BQU0sRUFBRSxFQUFFO01BQ1ZKLEtBQUssRUFBRTtJQUNULENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGSixFQUFFLENBQUMscUNBQXFDLEVBQUUsWUFBTTtJQUM5Q0ssTUFBTSxDQUFDZixNQUFNLENBQUNtQixpQkFBaUIsQ0FBQyxDQUFDQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDN0RMLE1BQU0sQ0FBQ2YsTUFBTSxDQUFDcUIsaUJBQWlCLENBQUMsQ0FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQzdETCxNQUFNLENBQUNmLE1BQU0sQ0FBQ3NCLGNBQWMsQ0FBQyxDQUFDRixJQUFJLENBQUMsbUJBQW1CLENBQUM7RUFDekQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
5
|
import { getFrequentlyUsedActions } from '../services/maia/Actions/getFrequentlyUsedActions';
|
|
6
6
|
import { useT } from './useT';
|
|
7
7
|
import { mapBackendLang } from '../utils/mapBackendLang';
|
|
8
8
|
export var mapMaiaSectionToFuasApiSection = function mapMaiaSectionToFuasApiSection(section) {
|
|
9
9
|
if (section === 'home_with_hours') return 'home_with_hours';
|
|
10
|
+
if (section === 'home_collaborator') return 'home_collaborator';
|
|
10
11
|
if (section === 'task') return 'tasks';
|
|
11
12
|
if (section === 'planner') return 'planner';
|
|
12
13
|
return 'home';
|
|
@@ -18,6 +19,7 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
|
|
|
18
19
|
var apiSection = useMemo(function () {
|
|
19
20
|
return mapMaiaSectionToFuasApiSection(maiaSection !== null && maiaSection !== void 0 ? maiaSection : 'header');
|
|
20
21
|
}, [maiaSection]);
|
|
22
|
+
var requestIdRef = useRef(0);
|
|
21
23
|
var _useState = useState([]),
|
|
22
24
|
_useState2 = _slicedToArray(_useState, 2),
|
|
23
25
|
actions = _useState2[0],
|
|
@@ -32,10 +34,11 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
|
|
|
32
34
|
setError = _useState6[1];
|
|
33
35
|
var handleGetFrequentlyUsedActions = useCallback(/*#__PURE__*/function () {
|
|
34
36
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(aid) {
|
|
35
|
-
var response, message, _t;
|
|
37
|
+
var requestId, response, message, _t;
|
|
36
38
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
37
39
|
while (1) switch (_context.prev = _context.next) {
|
|
38
40
|
case 0:
|
|
41
|
+
requestId = ++requestIdRef.current;
|
|
39
42
|
setLoading(true);
|
|
40
43
|
setError(null);
|
|
41
44
|
_context.prev = 1;
|
|
@@ -54,24 +57,36 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
|
|
|
54
57
|
}
|
|
55
58
|
throw new Error('Invalid response format from server');
|
|
56
59
|
case 3:
|
|
60
|
+
if (!(requestId !== requestIdRef.current)) {
|
|
61
|
+
_context.next = 4;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
return _context.abrupt("return");
|
|
65
|
+
case 4:
|
|
57
66
|
setActions(response.data);
|
|
58
|
-
_context.next =
|
|
67
|
+
_context.next = 7;
|
|
59
68
|
break;
|
|
60
|
-
case
|
|
61
|
-
_context.prev =
|
|
69
|
+
case 5:
|
|
70
|
+
_context.prev = 5;
|
|
62
71
|
_t = _context["catch"](1);
|
|
72
|
+
if (!(requestId !== requestIdRef.current)) {
|
|
73
|
+
_context.next = 6;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
return _context.abrupt("return");
|
|
77
|
+
case 6:
|
|
63
78
|
message = _t instanceof Error ? _t.message : 'An unknown error occurred';
|
|
64
79
|
setError(message);
|
|
65
80
|
console.error('Error fetching frequently used actions:', _t);
|
|
66
|
-
case
|
|
67
|
-
_context.prev =
|
|
68
|
-
setLoading(false);
|
|
69
|
-
return _context.finish(
|
|
70
|
-
case
|
|
81
|
+
case 7:
|
|
82
|
+
_context.prev = 7;
|
|
83
|
+
if (requestId === requestIdRef.current) setLoading(false);
|
|
84
|
+
return _context.finish(7);
|
|
85
|
+
case 8:
|
|
71
86
|
case "end":
|
|
72
87
|
return _context.stop();
|
|
73
88
|
}
|
|
74
|
-
}, _callee, null, [[1,
|
|
89
|
+
}, _callee, null, [[1, 5, 7, 8]]);
|
|
75
90
|
}));
|
|
76
91
|
return function (_x) {
|
|
77
92
|
return _ref.apply(this, arguments);
|
|
@@ -79,10 +94,14 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
|
|
|
79
94
|
}(), [lang, apiSection, entityType]);
|
|
80
95
|
useEffect(function () {
|
|
81
96
|
setActions([]);
|
|
97
|
+
setLoading(false);
|
|
82
98
|
setError(null);
|
|
83
99
|
if (agentId) {
|
|
84
100
|
handleGetFrequentlyUsedActions(agentId);
|
|
85
101
|
}
|
|
102
|
+
return function () {
|
|
103
|
+
requestIdRef.current += 1;
|
|
104
|
+
};
|
|
86
105
|
}, [agentId, handleGetFrequentlyUsedActions]);
|
|
87
106
|
return {
|
|
88
107
|
actions: actions,
|
|
@@ -91,4 +110,4 @@ export var useFrequentlyUsedActions = function useFrequentlyUsedActions(agentId,
|
|
|
91
110
|
handleGetFrequentlyUsedActions: handleGetFrequentlyUsedActions
|
|
92
111
|
};
|
|
93
112
|
};
|
|
94
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsInVzZVQiLCJtYXBCYWNrZW5kTGFuZyIsIm1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbiIsInNlY3Rpb24iLCJ1c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMiLCJhZ2VudElkIiwibWFpYVNlY3Rpb24iLCJlbnRpdHlUeXBlIiwiX3VzZVQiLCJpMThuIiwibGFuZyIsImxhbmd1YWdlIiwiYXBpU2VjdGlvbiIsInJlcXVlc3RJZFJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImFjdGlvbnMiLCJzZXRBY3Rpb25zIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZXJyb3IiLCJzZXRFcnJvciIsImhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImFpZCIsInJlcXVlc3RJZCIsInJlc3BvbnNlIiwibWVzc2FnZSIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJjdXJyZW50Iiwic2VudCIsIkFycmF5IiwiaXNBcnJheSIsImRhdGEiLCJFcnJvciIsImFicnVwdCIsImNvbnNvbGUiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VGcmVxdWVudGx5VXNlZEFjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQge1xuICBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMsXG4gIHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zQXBpU2VjdGlvbixcbn0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9BY3Rpb25zL2dldEZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB0eXBlIHsgU2VjdGlvbiB9IGZyb20gJy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi91c2VUJ1xuaW1wb3J0IHsgbWFwQmFja2VuZExhbmcgfSBmcm9tICcuLi91dGlscy9tYXBCYWNrZW5kTGFuZydcblxuZXhwb3J0IHR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zTWFpYVNlY3Rpb24gPSBTZWN0aW9uIHwgJ2hvbWVfd2l0aF9ob3VycycgfCAnaG9tZV9jb2xsYWJvcmF0b3InXG5cbmV4cG9ydCBjb25zdCBtYXBNYWlhU2VjdGlvblRvRnVhc0FwaVNlY3Rpb24gPSAoXG4gIHNlY3Rpb246IEZyZXF1ZW50bHlVc2VkQWN0aW9uc01haWFTZWN0aW9uXG4pOiBGcmVxdWVudGx5VXNlZEFjdGlvbnNBcGlTZWN0aW9uID0+IHtcbiAgaWYgKHNlY3Rpb24gPT09ICdob21lX3dpdGhfaG91cnMnKSByZXR1cm4gJ2hvbWVfd2l0aF9ob3VycydcbiAgaWYgKHNlY3Rpb24gPT09ICdob21lX2NvbGxhYm9yYXRvcicpIHJldHVybiAnaG9tZV9jb2xsYWJvcmF0b3InXG4gIGlmIChzZWN0aW9uID09PSAndGFzaycpIHJldHVybiAndGFza3MnXG4gIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicpIHJldHVybiAncGxhbm5lcidcbiAgcmV0dXJuICdob21lJ1xufVxuXG5leHBvcnQgY29uc3QgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zID0gKFxuICBhZ2VudElkPzogc3RyaW5nLFxuICBtYWlhU2VjdGlvbj86IEZyZXF1ZW50bHlVc2VkQWN0aW9uc01haWFTZWN0aW9uLFxuICBlbnRpdHlUeXBlPzogc3RyaW5nXG4pID0+IHtcbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUKClcbiAgY29uc3QgbGFuZyA9IG1hcEJhY2tlbmRMYW5nKGkxOG4ubGFuZ3VhZ2UpXG4gIGNvbnN0IGFwaVNlY3Rpb24gPSB1c2VNZW1vKCgpID0+IG1hcE1haWFTZWN0aW9uVG9GdWFzQXBpU2VjdGlvbihtYWlhU2VjdGlvbiA/PyAnaGVhZGVyJyksIFttYWlhU2VjdGlvbl0pXG4gIGNvbnN0IHJlcXVlc3RJZFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBbYWN0aW9ucywgc2V0QWN0aW9uc10gPSB1c2VTdGF0ZTxBY3Rpb25bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFpZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0SWQgPSArK3JlcXVlc3RJZFJlZi5jdXJyZW50XG4gICAgICBzZXRMb2FkaW5nKHRydWUpXG4gICAgICBzZXRFcnJvcihudWxsKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGcmVxdWVudGx5VXNlZEFjdGlvbnMoeyBhZ2VudElkOiBhaWQsIGxhbmcsIHNlY3Rpb246IGFwaVNlY3Rpb24sIGVudGl0eVR5cGUgfSlcbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBzZXJ2ZXInKVxuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlcXVlc3RJZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0QWN0aW9ucyhyZXNwb25zZS5kYXRhKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChyZXF1ZXN0SWQgIT09IHJlcXVlc3RJZFJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCdcbiAgICAgICAgc2V0RXJyb3IobWVzc2FnZSlcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZnJlcXVlbnRseSB1c2VkIGFjdGlvbnM6JywgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKHJlcXVlc3RJZCA9PT0gcmVxdWVzdElkUmVmLmN1cnJlbnQpIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICB9XG4gICAgfSxcbiAgICBbbGFuZywgYXBpU2VjdGlvbiwgZW50aXR5VHlwZV1cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aW9ucyhbXSlcbiAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgIHNldEVycm9yKG51bGwpXG4gICAgaWYgKGFnZW50SWQpIHtcbiAgICAgIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9ucyhhZ2VudElkKVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4geyByZXF1ZXN0SWRSZWYuY3VycmVudCArPSAxIH1cbiAgfSwgW2FnZW50SWQsIGhhbmRsZUdldEZyZXF1ZW50bHlVc2VkQWN0aW9uc10pXG5cbiAgcmV0dXJuIHtcbiAgICBhY3Rpb25zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGFuZGxlR2V0RnJlcXVlbnRseVVzZWRBY3Rpb25zLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLE1BQU0s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
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { isMaiaPageActive, MAIA_PAGE_PRESENCE_EVENT } from '../utils/maiaPageRoute';
|
|
4
|
+
export var useIsMaiaPageRoute = function useIsMaiaPageRoute() {
|
|
5
|
+
var _useState = useState(isMaiaPageActive),
|
|
6
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
7
|
+
isMaiaPage = _useState2[0],
|
|
8
|
+
setIsMaiaPage = _useState2[1];
|
|
9
|
+
useEffect(function () {
|
|
10
|
+
var sync = function sync() {
|
|
11
|
+
var next = isMaiaPageActive();
|
|
12
|
+
setIsMaiaPage(function (prev) {
|
|
13
|
+
return prev === next ? prev : next;
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
document.addEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
|
|
17
|
+
window.addEventListener('popstate', sync);
|
|
18
|
+
sync();
|
|
19
|
+
return function () {
|
|
20
|
+
document.removeEventListener(MAIA_PAGE_PRESENCE_EVENT, sync);
|
|
21
|
+
window.removeEventListener('popstate', sync);
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
return isMaiaPage;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImlzTWFpYVBhZ2VBY3RpdmUiLCJNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQiLCJ1c2VJc01haWFQYWdlUm91dGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpc01haWFQYWdlIiwic2V0SXNNYWlhUGFnZSIsInN5bmMiLCJuZXh0IiwicHJldiIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlSXNNYWlhUGFnZVJvdXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGlzTWFpYVBhZ2VBY3RpdmUsIE1BSUFfUEFHRV9QUkVTRU5DRV9FVkVOVCB9IGZyb20gJy4uL3V0aWxzL21haWFQYWdlUm91dGUnXG5cbmV4cG9ydCBjb25zdCB1c2VJc01haWFQYWdlUm91dGUgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IFtpc01haWFQYWdlLCBzZXRJc01haWFQYWdlXSA9IHVzZVN0YXRlKGlzTWFpYVBhZ2VBY3RpdmUpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzeW5jID0gKCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IGlzTWFpYVBhZ2VBY3RpdmUoKVxuICAgICAgc2V0SXNNYWlhUGFnZShwcmV2ID0+IChwcmV2ID09PSBuZXh0ID8gcHJldiA6IG5leHQpKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoTUFJQV9QQUdFX1BSRVNFTkNFX0VWRU5ULCBzeW5jKVxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHN5bmMpXG4gICAgc3luYygpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihNQUlBX1BBR0VfUFJFU0VOQ0VfRVZFTlQsIHN5bmMpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCBzeW5jKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIGlzTWFpYVBhZ2Vcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0MsU0FBU0MsZ0JBQWdCLEVBQUVDLHdCQUF3QixRQUFRLHdCQUF3QjtBQUVuRixPQUFPLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUEsRUFBa0I7RUFDL0MsSUFBQUMsU0FBQSxHQUFvQ0osUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQztJQUFBSSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUF2REcsVUFBVSxHQUFBRixVQUFBO0lBQUVHLGFBQWEsR0FBQUgsVUFBQTtFQUVoQ04sU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFNVSxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQSxFQUFTO01BQ2pCLElBQU1DLElBQUksR0FBR1QsZ0JBQWdCLENBQUMsQ0FBQztNQUMvQk8sYUFBYSxDQUFDLFVBQUFHLElBQUk7UUFBQSxPQUFLQSxJQUFJLEtBQUtELElBQUksR0FBR0MsSUFBSSxHQUFHRCxJQUFJO01BQUEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFREUsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ1gsd0JBQXdCLEVBQUVPLElBQUksQ0FBQztJQUN6REssTUFBTSxDQUFDRCxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUVKLElBQUksQ0FBQztJQUN6Q0EsSUFBSSxDQUFDLENBQUM7SUFFTixPQUFPLFlBQU07TUFDWEcsUUFBUSxDQUFDRyxtQkFBbUIsQ0FBQ2Isd0JBQXdCLEVBQUVPLElBQUksQ0FBQztNQUM1REssTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUVOLElBQUksQ0FBQztJQUM5QyxDQUFDO0VBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE9BQU9GLFVBQVU7QUFDbkIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { act, renderHook } from '@testing-library/react';
|
|
2
|
+
import { useIsMaiaPageRoute } from './useIsMaiaPageRoute';
|
|
3
|
+
import { MAIA_PAGE_ROOT_ATTR, setMaiaPagePresence } from '../utils/maiaPageRoute';
|
|
4
|
+
describe('useIsMaiaPageRoute', function () {
|
|
5
|
+
afterEach(function () {
|
|
6
|
+
document.documentElement.removeAttribute(MAIA_PAGE_ROOT_ATTR);
|
|
7
|
+
window.history.replaceState({}, '', '/');
|
|
8
|
+
});
|
|
9
|
+
it('follows the maia page presence without changing other state', function () {
|
|
10
|
+
window.history.replaceState({}, '', '/tasks');
|
|
11
|
+
var _renderHook = renderHook(function () {
|
|
12
|
+
return useIsMaiaPageRoute();
|
|
13
|
+
}),
|
|
14
|
+
result = _renderHook.result;
|
|
15
|
+
expect(result.current).toBe(false);
|
|
16
|
+
act(function () {
|
|
17
|
+
setMaiaPagePresence(true);
|
|
18
|
+
});
|
|
19
|
+
expect(result.current).toBe(true);
|
|
20
|
+
act(function () {
|
|
21
|
+
setMaiaPagePresence(false);
|
|
22
|
+
});
|
|
23
|
+
expect(result.current).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhY3QiLCJyZW5kZXJIb29rIiwidXNlSXNNYWlhUGFnZVJvdXRlIiwiTUFJQV9QQUdFX1JPT1RfQVRUUiIsInNldE1haWFQYWdlUHJlc2VuY2UiLCJkZXNjcmliZSIsImFmdGVyRWFjaCIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwicmVtb3ZlQXR0cmlidXRlIiwid2luZG93IiwiaGlzdG9yeSIsInJlcGxhY2VTdGF0ZSIsIml0IiwiX3JlbmRlckhvb2siLCJyZXN1bHQiLCJleHBlY3QiLCJjdXJyZW50IiwidG9CZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VJc01haWFQYWdlUm91dGUuc3BlYy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhY3QsIHJlbmRlckhvb2sgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0J1xuaW1wb3J0IHsgdXNlSXNNYWlhUGFnZVJvdXRlIH0gZnJvbSAnLi91c2VJc01haWFQYWdlUm91dGUnXG5pbXBvcnQgeyBNQUlBX1BBR0VfUk9PVF9BVFRSLCBzZXRNYWlhUGFnZVByZXNlbmNlIH0gZnJvbSAnLi4vdXRpbHMvbWFpYVBhZ2VSb3V0ZSdcblxuZGVzY3JpYmUoJ3VzZUlzTWFpYVBhZ2VSb3V0ZScsICgpID0+IHtcbiAgYWZ0ZXJFYWNoKCgpID0+IHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKE1BSUFfUEFHRV9ST09UX0FUVFIpXG4gICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCAnJywgJy8nKVxuICB9KVxuXG4gIGl0KCdmb2xsb3dzIHRoZSBtYWlhIHBhZ2UgcHJlc2VuY2Ugd2l0aG91dCBjaGFuZ2luZyBvdGhlciBzdGF0ZScsICgpID0+IHtcbiAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoe30sICcnLCAnL3Rhc2tzJylcbiAgICBjb25zdCB7IHJlc3VsdCB9ID0gcmVuZGVySG9vaygoKSA9PiB1c2VJc01haWFQYWdlUm91dGUoKSlcbiAgICBleHBlY3QocmVzdWx0LmN1cnJlbnQpLnRvQmUoZmFsc2UpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgc2V0TWFpYVBhZ2VQcmVzZW5jZSh0cnVlKVxuICAgIH0pXG4gICAgZXhwZWN0KHJlc3VsdC5jdXJyZW50KS50b0JlKHRydWUpXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgc2V0TWFpYVBhZ2VQcmVzZW5jZShmYWxzZSlcbiAgICB9KVxuICAgIGV4cGVjdChyZXN1bHQuY3VycmVudCkudG9CZShmYWxzZSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsRUFBRUMsVUFBVSxRQUFRLHdCQUF3QjtBQUN4RCxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsU0FBU0MsbUJBQW1CLEVBQUVDLG1CQUFtQixRQUFRLHdCQUF3QjtBQUVqRkMsUUFBUSxDQUFDLG9CQUFvQixFQUFFLFlBQU07RUFDbkNDLFNBQVMsQ0FBQyxZQUFNO0lBQ2RDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDQyxlQUFlLENBQUNOLG1CQUFtQixDQUFDO0lBQzdETyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7RUFDMUMsQ0FBQyxDQUFDO0VBRUZDLEVBQUUsQ0FBQyw2REFBNkQsRUFBRSxZQUFNO0lBQ3RFSCxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUM7SUFDN0MsSUFBQUUsV0FBQSxHQUFtQmIsVUFBVSxDQUFDO1FBQUEsT0FBTUMsa0JBQWtCLENBQUMsQ0FBQztNQUFBLEVBQUM7TUFBakRhLE1BQU0sR0FBQUQsV0FBQSxDQUFOQyxNQUFNO0lBQ2RDLE1BQU0sQ0FBQ0QsTUFBTSxDQUFDRSxPQUFPLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUVsQ2xCLEdBQUcsQ0FBQyxZQUFNO01BQ1JJLG1CQUFtQixDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDLENBQUM7SUFDRlksTUFBTSxDQUFDRCxNQUFNLENBQUNFLE9BQU8sQ0FBQyxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBRWpDbEIsR0FBRyxDQUFDLFlBQU07TUFDUkksbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUNGWSxNQUFNLENBQUNELE1BQU0sQ0FBQ0UsT0FBTyxDQUFDLENBQUNDLElBQUksQ0FBQyxLQUFLLENBQUM7RUFDcEMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|