cozy-search 0.6.1 → 0.7.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/AssistantMobile.d.ts +13 -1
- package/dist/components/AssistantMobile.js +20 -13
- package/dist/components/AssistantProvider.js +1 -1
- package/dist/components/ResultMenu/ResultMenu.d.ts +2 -2
- package/dist/components/ResultMenu/ResultMenu.js +4 -3
- package/dist/components/ResultMenu/ResultMenuContent.js +12 -7
- package/dist/components/ResultMenu/ResultMenuItem.d.ts +3 -2
- package/dist/components/ResultMenu/ResultMenuItem.js +31 -5
- package/dist/components/ResultMenu/styles.styl +3 -0
- package/dist/components/Search/AssistantButton.d.ts +1 -2
- package/dist/components/Search/AssistantButton.js +25 -2
- package/dist/components/Search/AssistantLink.js +4 -1
- package/dist/components/Search/SearchBarDesktop.js +7 -32
- package/dist/components/Search/SearchBarMobile.js +2 -26
- package/dist/components/Search/useFetchResult.js +19 -1
- package/dist/components/Views/AssistantDialog.js +17 -1
- package/dist/components/Views/SearchDialog.js +20 -28
- package/dist/stylesheet.css +3 -0
- package/package.json +2 -2
- package/dist/components/Search/SearchSubmitFab.d.ts +0 -5
- package/dist/components/Search/SearchSubmitFab.js +0 -59
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
export function AssistantMobile(
|
|
1
|
+
export function AssistantMobile({ componentsProps }: {
|
|
2
|
+
componentsProps: any;
|
|
3
|
+
}): JSX.Element;
|
|
4
|
+
export namespace AssistantMobile {
|
|
5
|
+
namespace propTypes {
|
|
6
|
+
let componentsProps: PropTypes.Requireable<PropTypes.InferProps<{
|
|
7
|
+
SearchBar: PropTypes.Requireable<PropTypes.InferProps<{
|
|
8
|
+
className: PropTypes.Requireable<string>;
|
|
9
|
+
}>>;
|
|
10
|
+
}>>;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
2
13
|
export default AssistantMobile;
|
|
14
|
+
import PropTypes from 'prop-types';
|
|
@@ -7,8 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.AssistantMobile = void 0;
|
|
9
9
|
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
10
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
13
|
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
12
16
|
var _react = _interopRequireDefault(require("react"));
|
|
13
17
|
|
|
14
18
|
var _reactRouterDom = require("react-router-dom");
|
|
@@ -19,27 +23,25 @@ var _Magnifier = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/
|
|
|
19
23
|
|
|
20
24
|
var _SearchBar = _interopRequireDefault(require("cozy-ui/transpiled/react/SearchBar"));
|
|
21
25
|
|
|
22
|
-
var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
|
|
23
|
-
|
|
24
26
|
var _useExtendI18n = _interopRequireDefault(require("cozy-ui/transpiled/react/providers/I18n/useExtendI18n"));
|
|
25
27
|
|
|
26
28
|
var _locales = require("../locales");
|
|
27
29
|
|
|
28
|
-
var _helpers = require("./helpers");
|
|
29
|
-
|
|
30
30
|
var styles = {
|
|
31
31
|
"searchBarDesktop--result": "styles__searchBarDesktop--result___2bQQy",
|
|
32
32
|
"suggestionsPlaceholder": "styles__suggestionsPlaceholder___y-vsv",
|
|
33
33
|
"search-bar-icon": "styles__search-bar-icon___1affF"
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
var AssistantMobile = function AssistantMobile() {
|
|
37
|
-
var
|
|
38
|
-
t = _useI18n.t;
|
|
39
|
-
|
|
36
|
+
var AssistantMobile = function AssistantMobile(_ref) {
|
|
37
|
+
var componentsProps = _ref.componentsProps;
|
|
40
38
|
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
39
|
+
|
|
40
|
+
var _useLocation = (0, _reactRouterDom.useLocation)(),
|
|
41
|
+
pathname = _useLocation.pathname;
|
|
42
|
+
|
|
41
43
|
(0, _useExtendI18n.default)(_locales.locales);
|
|
42
|
-
return /*#__PURE__*/_react.default.createElement(_SearchBar.default, {
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement(_SearchBar.default, (0, _extends2.default)({}, componentsProps === null || componentsProps === void 0 ? void 0 : componentsProps.SearchBar, {
|
|
43
45
|
size: "medium",
|
|
44
46
|
icon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
45
47
|
className: (0, _classnames.default)('u-ml-1 u-mr-half', styles['search-bar-icon']),
|
|
@@ -47,15 +49,20 @@ var AssistantMobile = function AssistantMobile() {
|
|
|
47
49
|
size: 16
|
|
48
50
|
}),
|
|
49
51
|
type: "button",
|
|
50
|
-
label: (0, _helpers.isAssistantEnabled)() ? t('assistant.search.placeholder') : undefined // fallback on SearchBar default
|
|
51
|
-
,
|
|
52
52
|
onClick: function onClick() {
|
|
53
|
-
return navigate(
|
|
53
|
+
return navigate("connected/search?returnPath=".concat(pathname));
|
|
54
54
|
} // FIXME this route is related to home app
|
|
55
55
|
|
|
56
|
-
});
|
|
56
|
+
}));
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
exports.AssistantMobile = AssistantMobile;
|
|
60
|
+
AssistantMobile.propTypes = {
|
|
61
|
+
componentsProps: _propTypes.default.shape({
|
|
62
|
+
SearchBar: _propTypes.default.shape({
|
|
63
|
+
className: _propTypes.default.string
|
|
64
|
+
})
|
|
65
|
+
})
|
|
66
|
+
};
|
|
60
67
|
var _default = AssistantMobile;
|
|
61
68
|
exports.default = _default;
|
|
@@ -17,13 +17,14 @@ var _ResultMenuContent = _interopRequireDefault(require("./ResultMenuContent"));
|
|
|
17
17
|
|
|
18
18
|
var styles = {
|
|
19
19
|
"resultMenu": "styles__resultMenu___o76q-",
|
|
20
|
-
"resultMenu-inner": "styles__resultMenu-inner___2Lf0d"
|
|
20
|
+
"resultMenu-inner": "styles__resultMenu-inner___2Lf0d",
|
|
21
|
+
"resultMenuItem": "styles__resultMenuItem___3-bLe"
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
var ResultMenu = function ResultMenu(_ref) {
|
|
24
25
|
var anchorRef = _ref.anchorRef,
|
|
25
26
|
listRef = _ref.listRef,
|
|
26
|
-
|
|
27
|
+
onClear = _ref.onClear;
|
|
27
28
|
return /*#__PURE__*/_react.default.createElement(_Popper.default, {
|
|
28
29
|
style: {
|
|
29
30
|
width: anchorRef.current.offsetWidth,
|
|
@@ -39,7 +40,7 @@ var ResultMenu = function ResultMenu(_ref) {
|
|
|
39
40
|
className: styles['resultMenu-inner']
|
|
40
41
|
}, /*#__PURE__*/_react.default.createElement(_ResultMenuContent.default, {
|
|
41
42
|
ref: listRef,
|
|
42
|
-
|
|
43
|
+
onClear: onClear
|
|
43
44
|
}))));
|
|
44
45
|
};
|
|
45
46
|
|
|
@@ -23,13 +23,13 @@ var _ResultMenuItem = _interopRequireDefault(require("./ResultMenuItem"));
|
|
|
23
23
|
|
|
24
24
|
var _SearchProvider = require("../Search/SearchProvider");
|
|
25
25
|
|
|
26
|
-
var _helpers = require("../helpers");
|
|
27
|
-
|
|
28
26
|
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); }
|
|
29
27
|
|
|
30
28
|
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; }
|
|
31
29
|
|
|
32
|
-
var SearchResult = function SearchResult() {
|
|
30
|
+
var SearchResult = function SearchResult(_ref) {
|
|
31
|
+
var onClear = _ref.onClear;
|
|
32
|
+
|
|
33
33
|
var _useSearch = (0, _SearchProvider.useSearch)(),
|
|
34
34
|
isLoading = _useSearch.isLoading,
|
|
35
35
|
results = _useSearch.results,
|
|
@@ -59,24 +59,29 @@ var SearchResult = function SearchResult() {
|
|
|
59
59
|
key: result.id || idx,
|
|
60
60
|
icon: result.icon,
|
|
61
61
|
slug: result.slug,
|
|
62
|
+
url: result.url,
|
|
62
63
|
primaryText: result.primary,
|
|
63
64
|
secondaryText: result.secondary,
|
|
64
65
|
secondaryUrl: result.secondaryUrl,
|
|
65
66
|
query: searchValue,
|
|
66
67
|
highlightQuery: "true",
|
|
67
|
-
selected:
|
|
68
|
-
|
|
68
|
+
selected: selectedIndex === idx,
|
|
69
|
+
onClear: onClear
|
|
69
70
|
});
|
|
70
71
|
});
|
|
71
72
|
};
|
|
72
73
|
|
|
73
|
-
var ResultMenuContent = /*#__PURE__*/(0, _react.forwardRef)(function (
|
|
74
|
+
var ResultMenuContent = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
|
|
75
|
+
var onClear = _ref2.onClear;
|
|
76
|
+
|
|
74
77
|
var _useDataProxy = (0, _cozyDataproxyLib.useDataProxy)(),
|
|
75
78
|
dataProxyServicesAvailable = _useDataProxy.dataProxyServicesAvailable;
|
|
76
79
|
|
|
77
80
|
return /*#__PURE__*/_react.default.createElement(_List.default, {
|
|
78
81
|
ref: ref
|
|
79
|
-
}, dataProxyServicesAvailable && /*#__PURE__*/_react.default.createElement(SearchResult,
|
|
82
|
+
}, dataProxyServicesAvailable && /*#__PURE__*/_react.default.createElement(SearchResult, {
|
|
83
|
+
onClear: onClear
|
|
84
|
+
}));
|
|
80
85
|
});
|
|
81
86
|
ResultMenuContent.displayName = 'ResultMenuContent';
|
|
82
87
|
var _default = ResultMenuContent;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
export default ResultMenuItem;
|
|
2
|
-
declare function ResultMenuItem({ icon, primaryText, secondaryText, secondaryUrl, slug, selected,
|
|
2
|
+
declare function ResultMenuItem({ icon, url, primaryText, secondaryText, secondaryUrl, slug, selected, query, highlightQuery, onClear }: {
|
|
3
3
|
icon: any;
|
|
4
|
+
url: any;
|
|
4
5
|
primaryText: any;
|
|
5
6
|
secondaryText: any;
|
|
6
7
|
secondaryUrl: any;
|
|
7
8
|
slug: any;
|
|
8
9
|
selected: any;
|
|
9
|
-
onClick: any;
|
|
10
10
|
query: any;
|
|
11
11
|
highlightQuery?: boolean | undefined;
|
|
12
|
+
onClear: any;
|
|
12
13
|
}): JSX.Element;
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
12
|
var _AppIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/AppIcon"));
|
|
13
13
|
|
|
@@ -23,17 +23,29 @@ var _SuggestionItemTextHighlighted = _interopRequireDefault(require("./Suggestio
|
|
|
23
23
|
|
|
24
24
|
var _SuggestionItemTextSecondary = _interopRequireDefault(require("./SuggestionItemTextSecondary"));
|
|
25
25
|
|
|
26
|
+
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); }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
var styles = {
|
|
31
|
+
"resultMenu": "styles__resultMenu___o76q-",
|
|
32
|
+
"resultMenu-inner": "styles__resultMenu-inner___2Lf0d",
|
|
33
|
+
"resultMenuItem": "styles__resultMenuItem___3-bLe"
|
|
34
|
+
};
|
|
35
|
+
|
|
26
36
|
var ResultMenuItem = function ResultMenuItem(_ref) {
|
|
27
37
|
var icon = _ref.icon,
|
|
38
|
+
url = _ref.url,
|
|
28
39
|
primaryText = _ref.primaryText,
|
|
29
40
|
secondaryText = _ref.secondaryText,
|
|
30
41
|
secondaryUrl = _ref.secondaryUrl,
|
|
31
42
|
slug = _ref.slug,
|
|
32
43
|
selected = _ref.selected,
|
|
33
|
-
onClick = _ref.onClick,
|
|
34
44
|
query = _ref.query,
|
|
35
45
|
_ref$highlightQuery = _ref.highlightQuery,
|
|
36
|
-
highlightQuery = _ref$highlightQuery === void 0 ? false : _ref$highlightQuery
|
|
46
|
+
highlightQuery = _ref$highlightQuery === void 0 ? false : _ref$highlightQuery,
|
|
47
|
+
onClear = _ref.onClear;
|
|
48
|
+
var itemRef = (0, _react.useRef)();
|
|
37
49
|
var iconComponent = icon.type === 'component' ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
38
50
|
icon: icon.component,
|
|
39
51
|
size: 32
|
|
@@ -50,11 +62,25 @@ var ResultMenuItem = function ResultMenuItem(_ref) {
|
|
|
50
62
|
slug: slug,
|
|
51
63
|
url: secondaryUrl
|
|
52
64
|
}) : secondaryText;
|
|
65
|
+
(0, _react.useEffect)(function () {
|
|
66
|
+
if (selected) {
|
|
67
|
+
var _itemRef$current;
|
|
68
|
+
|
|
69
|
+
itemRef === null || itemRef === void 0 ? void 0 : (_itemRef$current = itemRef.current) === null || _itemRef$current === void 0 ? void 0 : _itemRef$current.scrollIntoView({
|
|
70
|
+
behavior: 'smooth',
|
|
71
|
+
block: 'nearest',
|
|
72
|
+
inline: 'nearest'
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}, [selected]);
|
|
53
76
|
return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
|
|
54
|
-
|
|
77
|
+
component: "a",
|
|
78
|
+
href: url,
|
|
79
|
+
ref: itemRef,
|
|
55
80
|
size: "small",
|
|
56
81
|
selected: selected,
|
|
57
|
-
|
|
82
|
+
className: styles.resultMenuItem,
|
|
83
|
+
onClick: onClear
|
|
58
84
|
}, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, iconComponent), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
|
|
59
85
|
primary: primary,
|
|
60
86
|
secondary: secondary
|
|
@@ -9,6 +9,8 @@ exports.AssistantButton = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
|
+
var _reactRouterDom = require("react-router-dom");
|
|
13
|
+
|
|
12
14
|
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
13
15
|
|
|
14
16
|
var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
|
|
@@ -17,9 +19,30 @@ var _InputAdornment = _interopRequireDefault(require("cozy-ui/transpiled/react/I
|
|
|
17
19
|
|
|
18
20
|
var _TwakeAssistantIcon = require("../AssistantIcon/TwakeAssistantIcon");
|
|
19
21
|
|
|
22
|
+
var _AssistantProvider = require("../AssistantProvider");
|
|
23
|
+
|
|
24
|
+
var _helpers = require("../helpers");
|
|
25
|
+
|
|
20
26
|
var AssistantButton = function AssistantButton(_ref) {
|
|
21
|
-
var
|
|
22
|
-
|
|
27
|
+
var size = _ref.size;
|
|
28
|
+
|
|
29
|
+
var _useAssistant = (0, _AssistantProvider.useAssistant)(),
|
|
30
|
+
onAssistantExecute = _useAssistant.onAssistantExecute;
|
|
31
|
+
|
|
32
|
+
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
33
|
+
|
|
34
|
+
var _useLocation = (0, _reactRouterDom.useLocation)(),
|
|
35
|
+
pathname = _useLocation.pathname;
|
|
36
|
+
|
|
37
|
+
var onClick = function onClick() {
|
|
38
|
+
var conversationId = (0, _helpers.makeConversationId)();
|
|
39
|
+
onAssistantExecute({
|
|
40
|
+
value: '',
|
|
41
|
+
conversationId: conversationId
|
|
42
|
+
});
|
|
43
|
+
navigate("assistant/".concat(conversationId, "?returnPath=").concat(pathname));
|
|
44
|
+
};
|
|
45
|
+
|
|
23
46
|
return /*#__PURE__*/_react.default.createElement(_InputAdornment.default, {
|
|
24
47
|
position: "end",
|
|
25
48
|
className: "u-mr-half"
|
|
@@ -27,6 +27,9 @@ var AssistantLink = function AssistantLink(_ref) {
|
|
|
27
27
|
|
|
28
28
|
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
29
29
|
|
|
30
|
+
var _useLocation = (0, _reactRouterDom.useLocation)(),
|
|
31
|
+
pathname = _useLocation.pathname;
|
|
32
|
+
|
|
30
33
|
var openAssistant = function openAssistant() {
|
|
31
34
|
if (!(0, _helpers.isAssistantEnabled)()) return;
|
|
32
35
|
var conversationId = (0, _helpers.makeConversationId)();
|
|
@@ -34,7 +37,7 @@ var AssistantLink = function AssistantLink(_ref) {
|
|
|
34
37
|
value: '',
|
|
35
38
|
conversationId: conversationId
|
|
36
39
|
});
|
|
37
|
-
navigate("assistant/".concat(conversationId));
|
|
40
|
+
navigate("assistant/".concat(conversationId, "?returnPath=").concat(pathname));
|
|
38
41
|
};
|
|
39
42
|
|
|
40
43
|
return /*#__PURE__*/_react.default.createElement(_AssistantProvider.default, null, children({
|
|
@@ -11,8 +11,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
-
var _reactRouterDom = require("react-router-dom");
|
|
15
|
-
|
|
16
14
|
var _ClickAwayListener = _interopRequireDefault(require("cozy-ui/transpiled/react/ClickAwayListener"));
|
|
17
15
|
|
|
18
16
|
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
@@ -25,8 +23,6 @@ var _AssistantButton = require("./AssistantButton");
|
|
|
25
23
|
|
|
26
24
|
var _SearchProvider = require("./SearchProvider");
|
|
27
25
|
|
|
28
|
-
var _AssistantProvider = require("../AssistantProvider");
|
|
29
|
-
|
|
30
26
|
var _ResultMenu = _interopRequireDefault(require("../ResultMenu/ResultMenu"));
|
|
31
27
|
|
|
32
28
|
var _helpers = require("../helpers");
|
|
@@ -57,28 +53,9 @@ var SearchBarDesktop = function SearchBarDesktop(_ref) {
|
|
|
57
53
|
selectedIndex = _useSearch.selectedIndex,
|
|
58
54
|
setSelectedIndex = _useSearch.setSelectedIndex;
|
|
59
55
|
|
|
60
|
-
var _useAssistant = (0, _AssistantProvider.useAssistant)(),
|
|
61
|
-
onAssistantExecute = _useAssistant.onAssistantExecute;
|
|
62
|
-
|
|
63
|
-
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
64
56
|
var searchRef = (0, _react.useRef)();
|
|
65
57
|
var listRef = (0, _react.useRef)();
|
|
66
58
|
|
|
67
|
-
var handleClick = function handleClick() {
|
|
68
|
-
if (!(0, _helpers.isAssistantEnabled)()) return;
|
|
69
|
-
var conversationId = (0, _helpers.makeConversationId)();
|
|
70
|
-
onAssistantExecute({
|
|
71
|
-
value: value,
|
|
72
|
-
conversationId: conversationId
|
|
73
|
-
});
|
|
74
|
-
navigate("assistant/".concat(conversationId)); // setTimeout usefull to prevent the field from emptying before the route is changed
|
|
75
|
-
// works because the modal appears on top of the view that carries the input and not instead of it.
|
|
76
|
-
|
|
77
|
-
setTimeout(function () {
|
|
78
|
-
onClear();
|
|
79
|
-
}, 100);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
59
|
var handleKeyDown = function handleKeyDown(ev) {
|
|
83
60
|
var _listRef$current;
|
|
84
61
|
|
|
@@ -116,13 +93,12 @@ var SearchBarDesktop = function SearchBarDesktop(_ref) {
|
|
|
116
93
|
if (ev.key === 'Enter') {
|
|
117
94
|
ev.preventDefault();
|
|
118
95
|
|
|
119
|
-
if (selectedIndex) {
|
|
120
|
-
var _results;
|
|
96
|
+
if (selectedIndex !== undefined) {
|
|
97
|
+
var _results$selectedInde;
|
|
121
98
|
|
|
122
|
-
var onClickFn =
|
|
99
|
+
var onClickFn = results === null || results === void 0 ? void 0 : (_results$selectedInde = results[selectedIndex]) === null || _results$selectedInde === void 0 ? void 0 : _results$selectedInde.onClick;
|
|
100
|
+
onClear();
|
|
123
101
|
onClickFn();
|
|
124
|
-
} else if (value !== '') {
|
|
125
|
-
handleClick();
|
|
126
102
|
}
|
|
127
103
|
}
|
|
128
104
|
};
|
|
@@ -147,10 +123,9 @@ var SearchBarDesktop = function SearchBarDesktop(_ref) {
|
|
|
147
123
|
componentsProps: {
|
|
148
124
|
inputBase: {
|
|
149
125
|
onKeyDown: handleKeyDown,
|
|
150
|
-
endAdornment: (0, _helpers.isAssistantEnabled)()
|
|
151
|
-
onClick: handleClick,
|
|
126
|
+
endAdornment: (0, _helpers.isAssistantEnabled)() && /*#__PURE__*/_react.default.createElement(_AssistantButton.AssistantButton, {
|
|
152
127
|
size: size
|
|
153
|
-
})
|
|
128
|
+
})
|
|
154
129
|
}
|
|
155
130
|
},
|
|
156
131
|
disabledClear: true,
|
|
@@ -160,7 +135,7 @@ var SearchBarDesktop = function SearchBarDesktop(_ref) {
|
|
|
160
135
|
}), searchValue && /*#__PURE__*/_react.default.createElement(_ResultMenu.default, {
|
|
161
136
|
listRef: listRef,
|
|
162
137
|
anchorRef: searchRef,
|
|
163
|
-
|
|
138
|
+
onClear: onClear
|
|
164
139
|
})));
|
|
165
140
|
};
|
|
166
141
|
|
|
@@ -7,20 +7,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
12
|
var _SearchBar = _interopRequireDefault(require("cozy-ui/transpiled/react/SearchBar"));
|
|
13
13
|
|
|
14
|
-
var _useEventListener = _interopRequireDefault(require("cozy-ui/transpiled/react/hooks/useEventListener"));
|
|
15
|
-
|
|
16
|
-
var _SuggestionsPlaceholder = _interopRequireDefault(require("./SuggestionsPlaceholder"));
|
|
17
|
-
|
|
18
|
-
var _helpers = require("../helpers");
|
|
19
|
-
|
|
20
|
-
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); }
|
|
21
|
-
|
|
22
|
-
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; }
|
|
23
|
-
|
|
24
14
|
var styles = {
|
|
25
15
|
"conversationBar": "styles__conversationBar___2J-Us",
|
|
26
16
|
"conversationBar-input": "styles__conversationBar-input___2DfdZ"
|
|
@@ -30,36 +20,22 @@ var SearchBarMobile = function SearchBarMobile(_ref) {
|
|
|
30
20
|
var value = _ref.value,
|
|
31
21
|
onClear = _ref.onClear,
|
|
32
22
|
onChange = _ref.onChange;
|
|
33
|
-
var inputRef = (0, _react.useRef)(); // to adjust input height for multiline when typing in it
|
|
34
|
-
|
|
35
|
-
(0, _useEventListener.default)(inputRef.current, 'input', function () {
|
|
36
|
-
inputRef.current.style.height = 'auto'; // to resize input when emptying it
|
|
37
|
-
|
|
38
|
-
inputRef.current.style.height = "".concat(inputRef.current.scrollHeight, "px");
|
|
39
|
-
});
|
|
40
23
|
|
|
41
24
|
var handleClear = function handleClear() {
|
|
42
25
|
onClear();
|
|
43
|
-
inputRef.current.style.height = 'auto';
|
|
44
26
|
};
|
|
45
27
|
|
|
46
28
|
return /*#__PURE__*/_react.default.createElement(_SearchBar.default, {
|
|
47
29
|
className: styles['conversationBar'],
|
|
48
30
|
size: "auto",
|
|
49
31
|
icon: null,
|
|
50
|
-
placeholder: (0, _helpers.isAssistantEnabled)() ? ' ' : undefined // if assistant enabled, we set a blank space because we want only the SuggestionsPlaceholder below
|
|
51
|
-
,
|
|
52
32
|
value: value,
|
|
53
33
|
componentsProps: {
|
|
54
34
|
inputBase: {
|
|
55
35
|
inputProps: {
|
|
56
36
|
className: styles['conversationBar-input']
|
|
57
37
|
},
|
|
58
|
-
|
|
59
|
-
autoFocus: true,
|
|
60
|
-
rows: 1,
|
|
61
|
-
multiline: true,
|
|
62
|
-
startAdornment: (0, _helpers.isAssistantEnabled)() && !value && /*#__PURE__*/_react.default.createElement(_SuggestionsPlaceholder.default, null)
|
|
38
|
+
autoFocus: true
|
|
63
39
|
}
|
|
64
40
|
},
|
|
65
41
|
onChange: onChange,
|
|
@@ -15,6 +15,10 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
15
15
|
|
|
16
16
|
var _react = require("react");
|
|
17
17
|
|
|
18
|
+
var _reactRouterDom = require("react-router-dom");
|
|
19
|
+
|
|
20
|
+
var _cozyClient = require("cozy-client");
|
|
21
|
+
|
|
18
22
|
var _cozyDataproxyLib = require("cozy-dataproxy-lib");
|
|
19
23
|
|
|
20
24
|
var _cozyMinilog = _interopRequireDefault(require("cozy-minilog"));
|
|
@@ -96,6 +100,9 @@ var searchWithRetry = /*#__PURE__*/function () {
|
|
|
96
100
|
}();
|
|
97
101
|
|
|
98
102
|
var useFetchResult = function useFetchResult(searchValue) {
|
|
103
|
+
var client = (0, _cozyClient.useClient)();
|
|
104
|
+
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
105
|
+
|
|
99
106
|
var _useState = (0, _react.useState)({
|
|
100
107
|
isLoading: true,
|
|
101
108
|
results: null,
|
|
@@ -143,11 +150,22 @@ var useFetchResult = function useFetchResult(searchValue) {
|
|
|
143
150
|
id: r.doc._id,
|
|
144
151
|
icon: icon,
|
|
145
152
|
slug: r.slug,
|
|
153
|
+
url: r.url,
|
|
146
154
|
secondaryUrl: r.secondaryUrl,
|
|
147
155
|
primary: r.title,
|
|
148
156
|
secondary: r.subTitle,
|
|
149
157
|
onClick: function onClick() {
|
|
150
|
-
|
|
158
|
+
if (r.slug === client.appMetadata.slug) {
|
|
159
|
+
try {
|
|
160
|
+
var url = new URL(r.url);
|
|
161
|
+
var hash = url.hash.replace('#', '');
|
|
162
|
+
navigate(hash);
|
|
163
|
+
} catch (_unused) {
|
|
164
|
+
window.open(r.url);
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
window.open(r.url);
|
|
168
|
+
}
|
|
151
169
|
}
|
|
152
170
|
};
|
|
153
171
|
});
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _reactRouterDom = require("react-router-dom");
|
|
@@ -36,11 +38,25 @@ var AssistantDialog = function AssistantDialog() {
|
|
|
36
38
|
|
|
37
39
|
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
38
40
|
|
|
41
|
+
var _useSearchParams = (0, _reactRouterDom.useSearchParams)(),
|
|
42
|
+
_useSearchParams2 = (0, _slicedToArray2.default)(_useSearchParams, 1),
|
|
43
|
+
searchParams = _useSearchParams2[0];
|
|
44
|
+
|
|
39
45
|
var _useParams = (0, _reactRouterDom.useParams)(),
|
|
40
46
|
conversationId = _useParams.conversationId;
|
|
41
47
|
|
|
42
48
|
var onClose = function onClose() {
|
|
43
|
-
|
|
49
|
+
try {
|
|
50
|
+
var returnPath = searchParams.get('returnPath');
|
|
51
|
+
|
|
52
|
+
if (returnPath) {
|
|
53
|
+
navigate(returnPath);
|
|
54
|
+
} else {
|
|
55
|
+
navigate('..');
|
|
56
|
+
}
|
|
57
|
+
} catch (_unused) {
|
|
58
|
+
navigate('..');
|
|
59
|
+
}
|
|
44
60
|
};
|
|
45
61
|
|
|
46
62
|
return /*#__PURE__*/_react.default.createElement(_CozyDialogs.FixedDialog, {
|
|
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
12
14
|
var _reactRouterDom = require("react-router-dom");
|
|
@@ -19,7 +21,7 @@ var _useExtendI18n = _interopRequireDefault(require("cozy-ui/transpiled/react/pr
|
|
|
19
21
|
|
|
20
22
|
var _locales = require("../../locales");
|
|
21
23
|
|
|
22
|
-
var _AssistantProvider =
|
|
24
|
+
var _AssistantProvider = _interopRequireDefault(require("../AssistantProvider"));
|
|
23
25
|
|
|
24
26
|
var _ResultMenuContent = _interopRequireDefault(require("../ResultMenu/ResultMenuContent"));
|
|
25
27
|
|
|
@@ -27,38 +29,33 @@ var _SearchBar = _interopRequireDefault(require("../Search/SearchBar"));
|
|
|
27
29
|
|
|
28
30
|
var _SearchProvider = _interopRequireWildcard(require("../Search/SearchProvider"));
|
|
29
31
|
|
|
30
|
-
var _SearchSubmitFab = _interopRequireDefault(require("../Search/SearchSubmitFab"));
|
|
31
|
-
|
|
32
|
-
var _helpers = require("../helpers");
|
|
33
|
-
|
|
34
32
|
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); }
|
|
35
33
|
|
|
36
34
|
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; }
|
|
37
35
|
|
|
38
36
|
var SearchDialog = function SearchDialog() {
|
|
39
37
|
(0, _useExtendI18n.default)(_locales.locales);
|
|
40
|
-
|
|
41
|
-
var _useAssistant = (0, _AssistantProvider.useAssistant)(),
|
|
42
|
-
onAssistantExecute = _useAssistant.onAssistantExecute;
|
|
43
|
-
|
|
44
38
|
var navigate = (0, _reactRouterDom.useNavigate)();
|
|
45
39
|
|
|
40
|
+
var _useSearchParams = (0, _reactRouterDom.useSearchParams)(),
|
|
41
|
+
_useSearchParams2 = (0, _slicedToArray2.default)(_useSearchParams, 1),
|
|
42
|
+
searchParams = _useSearchParams2[0];
|
|
43
|
+
|
|
46
44
|
var _useSearch = (0, _SearchProvider.useSearch)(),
|
|
47
45
|
searchValue = _useSearch.searchValue;
|
|
48
46
|
|
|
49
|
-
var
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
value: searchValue,
|
|
53
|
-
conversationId: conversationId
|
|
54
|
-
});
|
|
55
|
-
navigate("../assistant/".concat(conversationId), {
|
|
56
|
-
replace: true
|
|
57
|
-
});
|
|
58
|
-
};
|
|
47
|
+
var onClose = function onClose() {
|
|
48
|
+
try {
|
|
49
|
+
var returnPath = searchParams.get('returnPath');
|
|
59
50
|
|
|
60
|
-
|
|
61
|
-
|
|
51
|
+
if (returnPath) {
|
|
52
|
+
navigate(returnPath);
|
|
53
|
+
} else {
|
|
54
|
+
navigate('..');
|
|
55
|
+
}
|
|
56
|
+
} catch (_unused) {
|
|
57
|
+
navigate('..');
|
|
58
|
+
}
|
|
62
59
|
};
|
|
63
60
|
|
|
64
61
|
return /*#__PURE__*/_react.default.createElement(_CozyDialogs.FixedDialog, {
|
|
@@ -76,13 +73,8 @@ var SearchDialog = function SearchDialog() {
|
|
|
76
73
|
}
|
|
77
74
|
},
|
|
78
75
|
title: /*#__PURE__*/_react.default.createElement(_SearchBar.default, null),
|
|
79
|
-
content:
|
|
80
|
-
|
|
81
|
-
}), (0, _helpers.isAssistantEnabled)() && /*#__PURE__*/_react.default.createElement(_SearchSubmitFab.default, {
|
|
82
|
-
searchValue: searchValue,
|
|
83
|
-
onClick: handleClick
|
|
84
|
-
})),
|
|
85
|
-
onClose: handleClose
|
|
76
|
+
content: searchValue && /*#__PURE__*/_react.default.createElement(_ResultMenuContent.default, null),
|
|
77
|
+
onClose: onClose
|
|
86
78
|
});
|
|
87
79
|
};
|
|
88
80
|
|
package/dist/stylesheet.css
CHANGED
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.7.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": "21bd95efd3c72ebf08004962a42ba0914c0b322f"
|
|
91
91
|
}
|
|
@@ -1,59 +0,0 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var _cozyDeviceHelper = require("cozy-device-helper");
|
|
13
|
-
|
|
14
|
-
var _Fab = _interopRequireDefault(require("cozy-ui/transpiled/react/Fab"));
|
|
15
|
-
|
|
16
|
-
var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
|
|
17
|
-
|
|
18
|
-
var _Paperplane = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Paperplane"));
|
|
19
|
-
|
|
20
|
-
var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
|
|
21
|
-
|
|
22
|
-
var _styles = require("cozy-ui/transpiled/react/styles");
|
|
23
|
-
|
|
24
|
-
var useStyles = (0, _styles.makeStyles)({
|
|
25
|
-
root: {
|
|
26
|
-
right: '1rem',
|
|
27
|
-
bottom: '1rem',
|
|
28
|
-
position: 'fixed',
|
|
29
|
-
marginBottom: function marginBottom(_ref) {
|
|
30
|
-
var immersive = _ref.immersive;
|
|
31
|
-
return immersive ? 'var(--flagship-bottom-height)' : 0;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
var SearchSubmitFab = function SearchSubmitFab(_ref2) {
|
|
37
|
-
var searchValue = _ref2.searchValue,
|
|
38
|
-
onClick = _ref2.onClick;
|
|
39
|
-
|
|
40
|
-
var _useI18n = (0, _I18n.useI18n)(),
|
|
41
|
-
t = _useI18n.t;
|
|
42
|
-
|
|
43
|
-
var styles = useStyles({
|
|
44
|
-
immersive: (0, _cozyDeviceHelper.getFlagshipMetadata)().immersive
|
|
45
|
-
});
|
|
46
|
-
return /*#__PURE__*/_react.default.createElement(_Fab.default, {
|
|
47
|
-
"aria-label": t('assistant.search.send'),
|
|
48
|
-
color: "primary",
|
|
49
|
-
size: "medium",
|
|
50
|
-
classes: styles,
|
|
51
|
-
disabled: !searchValue,
|
|
52
|
-
onClick: onClick
|
|
53
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
54
|
-
icon: _Paperplane.default
|
|
55
|
-
}));
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
var _default = SearchSubmitFab;
|
|
59
|
-
exports.default = _default;
|