cozy-search 0.9.1 → 0.11.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/dist/components/AssistantDesktop.d.ts +2 -1
- package/dist/components/AssistantDesktop.js +6 -2
- package/dist/components/Search/SearchProvider.d.ts +2 -1
- package/dist/components/Search/SearchProvider.js +4 -2
- package/dist/components/Search/useFetchResult.d.ts +1 -1
- package/dist/components/Search/useFetchResult.js +28 -22
- package/dist/locales/index.d.ts +4 -0
- package/dist/locales/index.js +45 -1
- package/dist/locales/ru.json +21 -0
- package/dist/locales/vi.json +21 -0
- package/package.json +2 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default AssistantDesktop;
|
|
2
|
-
declare function AssistantDesktop({ componentsProps }: {
|
|
2
|
+
declare function AssistantDesktop({ componentsProps, searchOptions }: {
|
|
3
3
|
componentsProps: any;
|
|
4
|
+
searchOptions?: {} | undefined;
|
|
4
5
|
}): JSX.Element;
|
|
5
6
|
declare namespace AssistantDesktop {
|
|
6
7
|
namespace propTypes {
|
|
@@ -22,11 +22,15 @@ var _SearchProvider = _interopRequireDefault(require("./Search/SearchProvider"))
|
|
|
22
22
|
var _locales = require("../locales");
|
|
23
23
|
|
|
24
24
|
var AssistantDesktop = function AssistantDesktop(_ref) {
|
|
25
|
-
var componentsProps = _ref.componentsProps
|
|
25
|
+
var componentsProps = _ref.componentsProps,
|
|
26
|
+
_ref$searchOptions = _ref.searchOptions,
|
|
27
|
+
searchOptions = _ref$searchOptions === void 0 ? {} : _ref$searchOptions;
|
|
26
28
|
(0, _useExtendI18n.default)(_locales.locales);
|
|
27
29
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
28
30
|
className: "u-mh-auto u-w-100 u-maw-100"
|
|
29
|
-
}, /*#__PURE__*/_react.default.createElement(_AssistantProvider.default, null, /*#__PURE__*/_react.default.createElement(_SearchProvider.default,
|
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_AssistantProvider.default, null, /*#__PURE__*/_react.default.createElement(_SearchProvider.default, {
|
|
32
|
+
searchOptions: searchOptions
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_SearchBar.default, {
|
|
30
34
|
componentsProps: componentsProps
|
|
31
35
|
}))));
|
|
32
36
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export const SearchContext: React.Context<any>;
|
|
2
2
|
export function useSearch(): any;
|
|
3
|
-
declare const _default: React.MemoExoticComponent<({ children }: {
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ children, searchOptions }: {
|
|
4
4
|
children: any;
|
|
5
|
+
searchOptions?: {} | undefined;
|
|
5
6
|
}) => JSX.Element>;
|
|
6
7
|
export default _default;
|
|
7
8
|
import React from 'react';
|
|
@@ -36,7 +36,9 @@ var useSearch = function useSearch() {
|
|
|
36
36
|
exports.useSearch = useSearch;
|
|
37
37
|
|
|
38
38
|
var SearchProvider = function SearchProvider(_ref) {
|
|
39
|
-
var children = _ref.children
|
|
39
|
+
var children = _ref.children,
|
|
40
|
+
_ref$searchOptions = _ref.searchOptions,
|
|
41
|
+
searchOptions = _ref$searchOptions === void 0 ? {} : _ref$searchOptions;
|
|
40
42
|
|
|
41
43
|
var _useState = (0, _react.useState)(''),
|
|
42
44
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -48,7 +50,7 @@ var SearchProvider = function SearchProvider(_ref) {
|
|
|
48
50
|
selectedIndex = _useState4[0],
|
|
49
51
|
setSelectedIndex = _useState4[1];
|
|
50
52
|
|
|
51
|
-
var _useFetchResult = (0, _useFetchResult2.useFetchResult)(searchValue),
|
|
53
|
+
var _useFetchResult = (0, _useFetchResult2.useFetchResult)(searchValue, searchOptions),
|
|
52
54
|
isLoading = _useFetchResult.isLoading,
|
|
53
55
|
results = _useFetchResult.results;
|
|
54
56
|
|
|
@@ -11,6 +11,8 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
11
11
|
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
|
|
14
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
+
|
|
14
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
17
|
|
|
16
18
|
var _react = require("react");
|
|
@@ -25,15 +27,17 @@ var _cozyMinilog = _interopRequireDefault(require("cozy-minilog"));
|
|
|
25
27
|
|
|
26
28
|
var _getIconForSearchResult = require("./getIconForSearchResult");
|
|
27
29
|
|
|
30
|
+
var _excluded = ["maxRetries", "delay"];
|
|
28
31
|
var log = (0, _cozyMinilog.default)('🔍 [useFetchResult]');
|
|
29
32
|
|
|
30
33
|
var searchWithRetry = /*#__PURE__*/function () {
|
|
31
34
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(dataProxy, searchValue) {
|
|
32
|
-
var
|
|
33
|
-
|
|
35
|
+
var options,
|
|
36
|
+
_options$maxRetries,
|
|
34
37
|
maxRetries,
|
|
35
|
-
|
|
38
|
+
_options$delay,
|
|
36
39
|
delay,
|
|
40
|
+
searchOptions,
|
|
37
41
|
currentDelay,
|
|
38
42
|
attempt,
|
|
39
43
|
searchResults,
|
|
@@ -43,50 +47,51 @@ var searchWithRetry = /*#__PURE__*/function () {
|
|
|
43
47
|
while (1) {
|
|
44
48
|
switch (_context.prev = _context.next) {
|
|
45
49
|
case 0:
|
|
46
|
-
|
|
50
|
+
options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};
|
|
51
|
+
_options$maxRetries = options.maxRetries, maxRetries = _options$maxRetries === void 0 ? 5 : _options$maxRetries, _options$delay = options.delay, delay = _options$delay === void 0 ? 500 : _options$delay, searchOptions = (0, _objectWithoutProperties2.default)(options, _excluded);
|
|
47
52
|
currentDelay = delay; // Make several search attemps in case it is not ready yet
|
|
48
53
|
|
|
49
54
|
attempt = 0;
|
|
50
55
|
|
|
51
|
-
case
|
|
56
|
+
case 4:
|
|
52
57
|
if (!(attempt < maxRetries)) {
|
|
53
|
-
_context.next =
|
|
58
|
+
_context.next = 17;
|
|
54
59
|
break;
|
|
55
60
|
}
|
|
56
61
|
|
|
57
|
-
_context.next =
|
|
58
|
-
return dataProxy.search(searchValue);
|
|
62
|
+
_context.next = 7;
|
|
63
|
+
return dataProxy.search(searchValue, searchOptions);
|
|
59
64
|
|
|
60
|
-
case
|
|
65
|
+
case 7:
|
|
61
66
|
searchResults = _context.sent;
|
|
62
67
|
|
|
63
68
|
if (!searchResults) {
|
|
64
|
-
_context.next =
|
|
69
|
+
_context.next = 10;
|
|
65
70
|
break;
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
return _context.abrupt("return", searchResults);
|
|
69
74
|
|
|
70
|
-
case
|
|
75
|
+
case 10:
|
|
71
76
|
log.info("Search attempt ".concat(attempt + 1, " failed, retrying in ").concat(currentDelay, " ms..."));
|
|
72
|
-
_context.next =
|
|
77
|
+
_context.next = 13;
|
|
73
78
|
return new Promise(function (resolve) {
|
|
74
79
|
return setTimeout(resolve, currentDelay);
|
|
75
80
|
});
|
|
76
81
|
|
|
77
|
-
case
|
|
82
|
+
case 13:
|
|
78
83
|
currentDelay *= 2; // Exponential backoff
|
|
79
84
|
|
|
80
|
-
case
|
|
85
|
+
case 14:
|
|
81
86
|
attempt++;
|
|
82
|
-
_context.next =
|
|
87
|
+
_context.next = 4;
|
|
83
88
|
break;
|
|
84
89
|
|
|
85
|
-
case
|
|
90
|
+
case 17:
|
|
86
91
|
log.error("Search failed after ".concat(maxRetries, " attempts"));
|
|
87
92
|
return _context.abrupt("return", []);
|
|
88
93
|
|
|
89
|
-
case
|
|
94
|
+
case 19:
|
|
90
95
|
case "end":
|
|
91
96
|
return _context.stop();
|
|
92
97
|
}
|
|
@@ -100,6 +105,7 @@ var searchWithRetry = /*#__PURE__*/function () {
|
|
|
100
105
|
}();
|
|
101
106
|
|
|
102
107
|
var useFetchResult = function useFetchResult(searchValue) {
|
|
108
|
+
var searchOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
103
109
|
var client = (0, _cozyClient.useClient)();
|
|
104
110
|
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
105
111
|
|
|
@@ -115,7 +121,7 @@ var useFetchResult = function useFetchResult(searchValue) {
|
|
|
115
121
|
var dataProxy = (0, _cozyDataproxyLib.useDataProxy)();
|
|
116
122
|
(0, _react.useEffect)(function () {
|
|
117
123
|
var fetch = /*#__PURE__*/function () {
|
|
118
|
-
var
|
|
124
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(searchValue, searchOptions) {
|
|
119
125
|
var searchResults, results;
|
|
120
126
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
121
127
|
while (1) {
|
|
@@ -136,7 +142,7 @@ var useFetchResult = function useFetchResult(searchValue) {
|
|
|
136
142
|
searchValue: searchValue
|
|
137
143
|
});
|
|
138
144
|
_context2.next = 6;
|
|
139
|
-
return searchWithRetry(dataProxy, searchValue);
|
|
145
|
+
return searchWithRetry(dataProxy, searchValue, searchOptions);
|
|
140
146
|
|
|
141
147
|
case 6:
|
|
142
148
|
searchResults = _context2.sent;
|
|
@@ -183,14 +189,14 @@ var useFetchResult = function useFetchResult(searchValue) {
|
|
|
183
189
|
}, _callee2);
|
|
184
190
|
}));
|
|
185
191
|
|
|
186
|
-
return function fetch(_x3) {
|
|
187
|
-
return
|
|
192
|
+
return function fetch(_x3, _x4) {
|
|
193
|
+
return _ref2.apply(this, arguments);
|
|
188
194
|
};
|
|
189
195
|
}();
|
|
190
196
|
|
|
191
197
|
if (searchValue) {
|
|
192
198
|
if (searchValue !== state.searchValue) {
|
|
193
|
-
fetch(searchValue);
|
|
199
|
+
fetch(searchValue, searchOptions);
|
|
194
200
|
}
|
|
195
201
|
} else {
|
|
196
202
|
setState({
|
package/dist/locales/index.d.ts
CHANGED
package/dist/locales/index.js
CHANGED
|
@@ -46,8 +46,52 @@ var fr = {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
var ru = {
|
|
50
|
+
assistant: {
|
|
51
|
+
search: {
|
|
52
|
+
placeholder: "\u0415\u0441\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441?",
|
|
53
|
+
send: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C",
|
|
54
|
+
noItem: "\u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432",
|
|
55
|
+
notEnough: "\u0412\u0430\u0448 \u0437\u0430\u043F\u0440\u043E\u0441 \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 3 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"
|
|
56
|
+
},
|
|
57
|
+
dialog: {
|
|
58
|
+
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C"
|
|
59
|
+
},
|
|
60
|
+
name: "\u0410\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442 Twake",
|
|
61
|
+
default_username: "\u0410\u043D\u043E\u043D\u0438\u043C\u043D\u043E",
|
|
62
|
+
sources: "%{smart_count} \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A |||| %{smart_count} \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430 |||| %{smart_count} \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432",
|
|
63
|
+
suggestions: {
|
|
64
|
+
find_file: "\u041D\u0430\u0439\u0442\u0438 \u0444\u0430\u0439\u043B",
|
|
65
|
+
reimbursements: "\u041F\u0440\u043E\u0432\u0435\u0440\u0438\u0442\u044C \u0432\u043E\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F \u0440\u0430\u0441\u0445\u043E\u0434\u043E\u0432",
|
|
66
|
+
reorganise_files: "\u0420\u0435\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u043C\u043E\u0438 \u0444\u0430\u0439\u043B\u044B"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
var vi = {
|
|
71
|
+
assistant: {
|
|
72
|
+
search: {
|
|
73
|
+
placeholder: "C\xF3 c\xE2u h\u1ECFi n\xE0o kh\xF4ng?",
|
|
74
|
+
send: "G\u1EEDi",
|
|
75
|
+
noItem: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3",
|
|
76
|
+
notEnough: "Truy v\u1EA5n c\u1EE7a b\u1EA1n ph\u1EA3i ch\u1EE9a \xEDt nh\u1EA5t 3 k\xFD t\u1EF1"
|
|
77
|
+
},
|
|
78
|
+
dialog: {
|
|
79
|
+
close: "\u0110\xF3ng"
|
|
80
|
+
},
|
|
81
|
+
name: "Tr\u1EE3 l\xFD Twake",
|
|
82
|
+
default_username: "\u1EA8n danh",
|
|
83
|
+
sources: "%{smart_count} ngu\u1ED3n |||| %{smart_count} ngu\u1ED3n",
|
|
84
|
+
suggestions: {
|
|
85
|
+
find_file: "T\xECm m\u1ED9t t\u1EC7p",
|
|
86
|
+
reimbursements: "Ki\u1EC3m tra c\xE1c kho\u1EA3n ho\xE0n tr\u1EA3 c\u1EE7a t\xF4i",
|
|
87
|
+
reorganise_files: "S\u1EAFp x\u1EBFp l\u1EA1i c\xE1c t\u1EC7p c\u1EE7a t\xF4i"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
};
|
|
49
91
|
var locales = {
|
|
50
92
|
en: en,
|
|
51
|
-
fr: fr
|
|
93
|
+
fr: fr,
|
|
94
|
+
ru: ru,
|
|
95
|
+
vi: vi
|
|
52
96
|
};
|
|
53
97
|
exports.locales = locales;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assistant": {
|
|
3
|
+
"search": {
|
|
4
|
+
"placeholder": "Есть вопрос?",
|
|
5
|
+
"send": "Отправить",
|
|
6
|
+
"noItem": "Нет результатов",
|
|
7
|
+
"notEnough": "Ваш запрос должен содержать не менее 3 символов"
|
|
8
|
+
},
|
|
9
|
+
"dialog": {
|
|
10
|
+
"close": "Закрыть"
|
|
11
|
+
},
|
|
12
|
+
"name": "Ассистент Twake",
|
|
13
|
+
"default_username": "Анонимно",
|
|
14
|
+
"sources": "%{smart_count} источник |||| %{smart_count} источника |||| %{smart_count} источников",
|
|
15
|
+
"suggestions": {
|
|
16
|
+
"find_file": "Найти файл",
|
|
17
|
+
"reimbursements": "Проверить возмещения расходов",
|
|
18
|
+
"reorganise_files": "Реорганизовать мои файлы"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"assistant": {
|
|
3
|
+
"search": {
|
|
4
|
+
"placeholder": "Có câu hỏi nào không?",
|
|
5
|
+
"send": "Gửi",
|
|
6
|
+
"noItem": "Không có kết quả",
|
|
7
|
+
"notEnough": "Truy vấn của bạn phải chứa ít nhất 3 ký tự"
|
|
8
|
+
},
|
|
9
|
+
"dialog": {
|
|
10
|
+
"close": "Đóng"
|
|
11
|
+
},
|
|
12
|
+
"name": "Trợ lý Twake",
|
|
13
|
+
"default_username": "Ẩn danh",
|
|
14
|
+
"sources": "%{smart_count} nguồn |||| %{smart_count} nguồn",
|
|
15
|
+
"suggestions": {
|
|
16
|
+
"find_file": "Tìm một tệp",
|
|
17
|
+
"reimbursements": "Kiểm tra các khoản hoàn trả của tôi",
|
|
18
|
+
"reorganise_files": "Sắp xếp lại các tệp của tôi"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cozy-search",
|
|
3
3
|
"description": "UI components about search bar and IA assistant",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.11.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cozy Cloud",
|
|
7
7
|
"url": "https://github.com/cozy"
|
|
@@ -87,5 +87,5 @@
|
|
|
87
87
|
"lint": "cd .. && yarn eslint --ext js,jsx,ts packages/cozy-search"
|
|
88
88
|
},
|
|
89
89
|
"types": "dist/index.d.ts",
|
|
90
|
-
"gitHead": "
|
|
90
|
+
"gitHead": "eee91aab0f6a7e314ea01b19ef23d147ec795997"
|
|
91
91
|
}
|