StartScreen.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. var _excluded = ["translations"];
  2. function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  3. function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
  4. function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
  5. import React from 'react';
  6. import { RecentIcon, ResetIcon, StarIcon } from './icons';
  7. import { Results } from './Results';
  8. export function StartScreen(_ref) {
  9. var _ref$translations = _ref.translations,
  10. translations = _ref$translations === void 0 ? {} : _ref$translations,
  11. props = _objectWithoutProperties(_ref, _excluded);
  12. var _translations$recentS = translations.recentSearchesTitle,
  13. recentSearchesTitle = _translations$recentS === void 0 ? 'Recent' : _translations$recentS,
  14. _translations$noRecen = translations.noRecentSearchesText,
  15. noRecentSearchesText = _translations$noRecen === void 0 ? 'No recent searches' : _translations$noRecen,
  16. _translations$saveRec = translations.saveRecentSearchButtonTitle,
  17. saveRecentSearchButtonTitle = _translations$saveRec === void 0 ? 'Save this search' : _translations$saveRec,
  18. _translations$removeR = translations.removeRecentSearchButtonTitle,
  19. removeRecentSearchButtonTitle = _translations$removeR === void 0 ? 'Remove this search from history' : _translations$removeR,
  20. _translations$favorit = translations.favoriteSearchesTitle,
  21. favoriteSearchesTitle = _translations$favorit === void 0 ? 'Favorite' : _translations$favorit,
  22. _translations$removeF = translations.removeFavoriteSearchButtonTitle,
  23. removeFavoriteSearchButtonTitle = _translations$removeF === void 0 ? 'Remove this search from favorites' : _translations$removeF;
  24. if (props.state.status === 'idle' && props.hasCollections === false) {
  25. if (props.disableUserPersonalization) {
  26. return null;
  27. }
  28. return /*#__PURE__*/React.createElement("div", {
  29. className: "DocSearch-StartScreen"
  30. }, /*#__PURE__*/React.createElement("p", {
  31. className: "DocSearch-Help"
  32. }, noRecentSearchesText));
  33. }
  34. if (props.hasCollections === false) {
  35. return null;
  36. }
  37. return /*#__PURE__*/React.createElement("div", {
  38. className: "DocSearch-Dropdown-Container"
  39. }, /*#__PURE__*/React.createElement(Results, _extends({}, props, {
  40. title: recentSearchesTitle,
  41. collection: props.state.collections[0],
  42. renderIcon: function renderIcon() {
  43. return /*#__PURE__*/React.createElement("div", {
  44. className: "DocSearch-Hit-icon"
  45. }, /*#__PURE__*/React.createElement(RecentIcon, null));
  46. },
  47. renderAction: function renderAction(_ref2) {
  48. var item = _ref2.item,
  49. runFavoriteTransition = _ref2.runFavoriteTransition,
  50. runDeleteTransition = _ref2.runDeleteTransition;
  51. return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
  52. className: "DocSearch-Hit-action"
  53. }, /*#__PURE__*/React.createElement("button", {
  54. className: "DocSearch-Hit-action-button",
  55. title: saveRecentSearchButtonTitle,
  56. type: "submit",
  57. onClick: function onClick(event) {
  58. event.preventDefault();
  59. event.stopPropagation();
  60. runFavoriteTransition(function () {
  61. props.favoriteSearches.add(item);
  62. props.recentSearches.remove(item);
  63. props.refresh();
  64. });
  65. }
  66. }, /*#__PURE__*/React.createElement(StarIcon, null))), /*#__PURE__*/React.createElement("div", {
  67. className: "DocSearch-Hit-action"
  68. }, /*#__PURE__*/React.createElement("button", {
  69. className: "DocSearch-Hit-action-button",
  70. title: removeRecentSearchButtonTitle,
  71. type: "submit",
  72. onClick: function onClick(event) {
  73. event.preventDefault();
  74. event.stopPropagation();
  75. runDeleteTransition(function () {
  76. props.recentSearches.remove(item);
  77. props.refresh();
  78. });
  79. }
  80. }, /*#__PURE__*/React.createElement(ResetIcon, null))));
  81. }
  82. })), /*#__PURE__*/React.createElement(Results, _extends({}, props, {
  83. title: favoriteSearchesTitle,
  84. collection: props.state.collections[1],
  85. renderIcon: function renderIcon() {
  86. return /*#__PURE__*/React.createElement("div", {
  87. className: "DocSearch-Hit-icon"
  88. }, /*#__PURE__*/React.createElement(StarIcon, null));
  89. },
  90. renderAction: function renderAction(_ref3) {
  91. var item = _ref3.item,
  92. runDeleteTransition = _ref3.runDeleteTransition;
  93. return /*#__PURE__*/React.createElement("div", {
  94. className: "DocSearch-Hit-action"
  95. }, /*#__PURE__*/React.createElement("button", {
  96. className: "DocSearch-Hit-action-button",
  97. title: removeFavoriteSearchButtonTitle,
  98. type: "submit",
  99. onClick: function onClick(event) {
  100. event.preventDefault();
  101. event.stopPropagation();
  102. runDeleteTransition(function () {
  103. props.favoriteSearches.remove(item);
  104. props.refresh();
  105. });
  106. }
  107. }, /*#__PURE__*/React.createElement(ResetIcon, null)));
  108. }
  109. })));
  110. }