cozy-search 0.9.1 → 0.10.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.
@@ -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, null, /*#__PURE__*/_react.default.createElement(_SearchBar.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
 
@@ -1,4 +1,4 @@
1
- export function useFetchResult(searchValue: any): {
1
+ export function useFetchResult(searchValue: any, searchOptions?: {}): {
2
2
  isLoading: boolean;
3
3
  results: null;
4
4
  };
@@ -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 _ref2,
33
- _ref2$maxRetries,
35
+ var options,
36
+ _options$maxRetries,
34
37
  maxRetries,
35
- _ref2$delay,
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
- _ref2 = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref2$maxRetries = _ref2.maxRetries, maxRetries = _ref2$maxRetries === void 0 ? 5 : _ref2$maxRetries, _ref2$delay = _ref2.delay, delay = _ref2$delay === void 0 ? 500 : _ref2$delay;
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 3:
56
+ case 4:
52
57
  if (!(attempt < maxRetries)) {
53
- _context.next = 16;
58
+ _context.next = 17;
54
59
  break;
55
60
  }
56
61
 
57
- _context.next = 6;
58
- return dataProxy.search(searchValue);
62
+ _context.next = 7;
63
+ return dataProxy.search(searchValue, searchOptions);
59
64
 
60
- case 6:
65
+ case 7:
61
66
  searchResults = _context.sent;
62
67
 
63
68
  if (!searchResults) {
64
- _context.next = 9;
69
+ _context.next = 10;
65
70
  break;
66
71
  }
67
72
 
68
73
  return _context.abrupt("return", searchResults);
69
74
 
70
- case 9:
75
+ case 10:
71
76
  log.info("Search attempt ".concat(attempt + 1, " failed, retrying in ").concat(currentDelay, " ms..."));
72
- _context.next = 12;
77
+ _context.next = 13;
73
78
  return new Promise(function (resolve) {
74
79
  return setTimeout(resolve, currentDelay);
75
80
  });
76
81
 
77
- case 12:
82
+ case 13:
78
83
  currentDelay *= 2; // Exponential backoff
79
84
 
80
- case 13:
85
+ case 14:
81
86
  attempt++;
82
- _context.next = 3;
87
+ _context.next = 4;
83
88
  break;
84
89
 
85
- case 16:
90
+ case 17:
86
91
  log.error("Search failed after ".concat(maxRetries, " attempts"));
87
92
  return _context.abrupt("return", []);
88
93
 
89
- case 18:
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 _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(searchValue) {
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 _ref3.apply(this, arguments);
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/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.9.1",
4
+ "version": "0.10.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": "f699b9db9d6fd7980a7f3391891f826da1a9ca5d"
90
+ "gitHead": "3c2aec619c38a5787fbd1b3e3552f0cbc263b975"
91
91
  }