cozy-search
Version:
UI components about search bar and IA assistant
88 lines (68 loc) • 4.08 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _cozyDataproxyLib = require("cozy-dataproxy-lib");
var _List = _interopRequireDefault(require("cozy-ui/transpiled/react/List"));
var _ListItemSkeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeletons/ListItemSkeleton"));
var _NoResultItem = _interopRequireDefault(require("./NoResultItem"));
var _NotEnoughItem = _interopRequireDefault(require("./NotEnoughItem"));
var _ResultMenuItem = _interopRequireDefault(require("./ResultMenuItem"));
var _SearchProvider = require("../Search/SearchProvider");
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); }
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; }
var SearchResult = function SearchResult(_ref) {
var onClear = _ref.onClear;
var _useSearch = (0, _SearchProvider.useSearch)(),
isLoading = _useSearch.isLoading,
results = _useSearch.results,
selectedIndex = _useSearch.selectedIndex,
searchValue = _useSearch.searchValue;
if (isLoading && !(results !== null && results !== void 0 && results.length)) {
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
hasSecondary: true
}), /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
hasSecondary: true
}), /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
hasSecondary: true
}));
}
if (!isLoading && !(results !== null && results !== void 0 && results.length)) {
if (searchValue.length >= 3) {
return /*#__PURE__*/_react.default.createElement(_NoResultItem.default, null);
} else {
return /*#__PURE__*/_react.default.createElement(_NotEnoughItem.default, null);
}
}
return results.map(function (result, idx) {
return /*#__PURE__*/_react.default.createElement(_ResultMenuItem.default, {
key: result.id || idx,
icon: result.icon,
slug: result.slug,
url: result.url,
primaryText: result.primary,
secondaryText: result.secondary,
secondaryUrl: result.secondaryUrl,
query: searchValue,
highlightQuery: "true",
selected: selectedIndex === idx,
onClear: onClear
});
});
};
var ResultMenuContent = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
var onClear = _ref2.onClear;
var _useDataProxy = (0, _cozyDataproxyLib.useDataProxy)(),
dataProxyServicesAvailable = _useDataProxy.dataProxyServicesAvailable;
return /*#__PURE__*/_react.default.createElement(_List.default, {
ref: ref
}, dataProxyServicesAvailable && /*#__PURE__*/_react.default.createElement(SearchResult, {
onClear: onClear
}));
});
ResultMenuContent.displayName = 'ResultMenuContent';
var _default = ResultMenuContent;
exports.default = _default;