@bigbinary/neeto-tags-frontend 1.6.0 → 1.6.2

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/index.cjs.js CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var neetoCist = require('@bigbinary/neeto-cist');
7
7
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
8
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var useHotkeys = require('@bigbinary/neeto-hotkeys');
9
9
  var neetoIcons = require('@bigbinary/neeto-icons');
10
10
  var neetoui = require('@bigbinary/neetoui');
11
11
  var ramda = require('ramda');
@@ -14,6 +14,7 @@ var i18next = require('i18next');
14
14
  var classNames = require('classnames');
15
15
  var Metadata = require('@bigbinary/neeto-molecules/Metadata');
16
16
  var reactRouterDom = require('react-router-dom');
17
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
17
18
  var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
18
19
  var Container$1 = require('@bigbinary/neeto-molecules/Container');
19
20
  var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
@@ -48,6 +49,7 @@ function _interopNamespace(e) {
48
49
  }
49
50
 
50
51
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
52
+ var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
51
53
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
52
54
  var Metadata__default = /*#__PURE__*/_interopDefaultLegacy(Metadata);
53
55
  var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container$1);
@@ -248,13 +250,37 @@ var TagsList = function TagsList(_ref) {
248
250
  }));
249
251
  };
250
252
 
251
- var TagsSelector = reactUtils.withT(function (_ref) {
252
- var t = _ref.t,
253
- defaultMenuIsOpen = _ref.defaultMenuIsOpen,
253
+ var TagsSelector = function TagsSelector(_ref) {
254
+ var defaultMenuIsOpen = _ref.defaultMenuIsOpen,
254
255
  tags = _ref.tags,
255
256
  onChange = _ref.onChange,
256
257
  onCreateOption = _ref.onCreateOption,
257
258
  selectProps = _ref.selectProps;
259
+ var _useState = React.useState(""),
260
+ _useState2 = _slicedToArray(_useState, 2),
261
+ inputValue = _useState2[0],
262
+ setInputValue = _useState2[1];
263
+ var isMenuOpen = React.useRef(defaultMenuIsOpen);
264
+ var _useTranslation = reactI18next.useTranslation(),
265
+ t = _useTranslation.t;
266
+ var handleMenuOpen = function handleMenuOpen() {
267
+ var _selectProps$onMenuOp;
268
+ isMenuOpen.current = true;
269
+ (_selectProps$onMenuOp = selectProps.onMenuOpen) === null || _selectProps$onMenuOp === void 0 || _selectProps$onMenuOp.call(selectProps);
270
+ };
271
+ var handleMenuClose = function handleMenuClose() {
272
+ var _selectProps$onMenuCl;
273
+ isMenuOpen.current = false;
274
+ (_selectProps$onMenuCl = selectProps.onMenuClose) === null || _selectProps$onMenuCl === void 0 || _selectProps$onMenuCl.call(selectProps);
275
+ };
276
+ var handleKeyDown = function handleKeyDown(event) {
277
+ var _selectProps$onKeyDow;
278
+ if (!inputValue) return;
279
+ if (event.key === "Enter" && isMenuOpen.current) {
280
+ event.stopPropagation();
281
+ }
282
+ (_selectProps$onKeyDow = selectProps.onKeyDown) === null || _selectProps$onKeyDow === void 0 || _selectProps$onKeyDow.call(selectProps, event);
283
+ };
258
284
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
259
285
  defaultMenuIsOpen: defaultMenuIsOpen,
260
286
  onChange: onChange,
@@ -264,8 +290,13 @@ var TagsSelector = reactUtils.withT(function (_ref) {
264
290
  maxLength: 50,
265
291
  options: tags,
266
292
  placeholder: t("neetoTags.placeholder.selectOrCreateTag")
267
- }, selectProps));
268
- });
293
+ }, selectProps, {
294
+ onInputChange: setInputValue,
295
+ onKeyDown: handleKeyDown,
296
+ onMenuClose: handleMenuClose,
297
+ onMenuOpen: handleMenuOpen
298
+ }));
299
+ };
269
300
 
270
301
  /**
271
302
  * A component that helps to manage tags.
@@ -281,7 +312,8 @@ var Tags$2 = function Tags(_ref) {
281
312
  onTagCreate = _ref.onTagCreate,
282
313
  onTagDelete = _ref.onTagDelete,
283
314
  tagProps = _ref.tagProps,
284
- selectProps = _ref.selectProps,
315
+ _ref$selectProps = _ref.selectProps,
316
+ selectProps = _ref$selectProps === void 0 ? {} : _ref$selectProps,
285
317
  buttonProps = _ref.buttonProps,
286
318
  _ref$showSuccessToast = _ref.showSuccessToastr,
287
319
  showSuccessToastr = _ref$showSuccessToast === void 0 ? false : _ref$showSuccessToast,
@@ -308,7 +340,7 @@ var Tags$2 = function Tags(_ref) {
308
340
  _useState2 = _slicedToArray(_useState, 2),
309
341
  isTagsDropdownVisible = _useState2[0],
310
342
  setIsTagsDropdownVisible = _useState2[1];
311
- reactUtils.useHotKeys(KEYBOARD_SHORTCUTS.addTag.sequence, function (event) {
343
+ useHotkeys__default["default"](KEYBOARD_SHORTCUTS.addTag.sequence, function (event) {
312
344
  event.preventDefault();
313
345
  setIsTagsDropdownVisible(true);
314
346
  });
@@ -321,9 +353,9 @@ var Tags$2 = function Tags(_ref) {
321
353
  return !selectedTagValues.includes(value);
322
354
  });
323
355
  }, [allTags, selectedTags]);
324
- var handleAddExistingTag = function handleAddExistingTag(event) {
356
+ var handleAddExistingTag = function handleAddExistingTag(tag) {
325
357
  setIsTagsDropdownVisible(false);
326
- onTagSelect(event);
358
+ onTagSelect(tag);
327
359
  // @ts-ignore
328
360
  showSuccessToastr && neetoui.Toastr.success("", {
329
361
  icon: "👍",
@@ -361,12 +393,10 @@ var Tags$2 = function Tags(_ref) {
361
393
  var tagsSelectorProps = {
362
394
  defaultMenuIsOpen: showAddTagsOnTitle,
363
395
  tags: tags,
364
- onChange: function onChange(event) {
365
- return handleAddExistingTag(event);
366
- },
367
- onCreateOption: function onCreateOption(event) {
396
+ onChange: handleAddExistingTag,
397
+ onCreateOption: function onCreateOption(tagName) {
368
398
  setIsTagsDropdownVisible(false);
369
- onTagCreate(event);
399
+ onTagCreate(tagName);
370
400
  },
371
401
  selectProps: selectProps
372
402
  };