@bigbinary/neeto-tags-frontend 1.6.1 → 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
@@ -13,8 +13,8 @@ var reactI18next = require('react-i18next');
13
13
  var i18next = require('i18next');
14
14
  var classNames = require('classnames');
15
15
  var Metadata = require('@bigbinary/neeto-molecules/Metadata');
16
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
17
16
  var reactRouterDom = require('react-router-dom');
17
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
18
18
  var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
19
19
  var Container$1 = require('@bigbinary/neeto-molecules/Container');
20
20
  var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
@@ -250,13 +250,37 @@ var TagsList = function TagsList(_ref) {
250
250
  }));
251
251
  };
252
252
 
253
- var TagsSelector = reactUtils.withT(function (_ref) {
254
- var t = _ref.t,
255
- defaultMenuIsOpen = _ref.defaultMenuIsOpen,
253
+ var TagsSelector = function TagsSelector(_ref) {
254
+ var defaultMenuIsOpen = _ref.defaultMenuIsOpen,
256
255
  tags = _ref.tags,
257
256
  onChange = _ref.onChange,
258
257
  onCreateOption = _ref.onCreateOption,
259
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
+ };
260
284
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
261
285
  defaultMenuIsOpen: defaultMenuIsOpen,
262
286
  onChange: onChange,
@@ -266,8 +290,13 @@ var TagsSelector = reactUtils.withT(function (_ref) {
266
290
  maxLength: 50,
267
291
  options: tags,
268
292
  placeholder: t("neetoTags.placeholder.selectOrCreateTag")
269
- }, selectProps));
270
- });
293
+ }, selectProps, {
294
+ onInputChange: setInputValue,
295
+ onKeyDown: handleKeyDown,
296
+ onMenuClose: handleMenuClose,
297
+ onMenuOpen: handleMenuOpen
298
+ }));
299
+ };
271
300
 
272
301
  /**
273
302
  * A component that helps to manage tags.
@@ -283,7 +312,8 @@ var Tags$2 = function Tags(_ref) {
283
312
  onTagCreate = _ref.onTagCreate,
284
313
  onTagDelete = _ref.onTagDelete,
285
314
  tagProps = _ref.tagProps,
286
- selectProps = _ref.selectProps,
315
+ _ref$selectProps = _ref.selectProps,
316
+ selectProps = _ref$selectProps === void 0 ? {} : _ref$selectProps,
287
317
  buttonProps = _ref.buttonProps,
288
318
  _ref$showSuccessToast = _ref.showSuccessToastr,
289
319
  showSuccessToastr = _ref$showSuccessToast === void 0 ? false : _ref$showSuccessToast,
@@ -323,9 +353,9 @@ var Tags$2 = function Tags(_ref) {
323
353
  return !selectedTagValues.includes(value);
324
354
  });
325
355
  }, [allTags, selectedTags]);
326
- var handleAddExistingTag = function handleAddExistingTag(event) {
356
+ var handleAddExistingTag = function handleAddExistingTag(tag) {
327
357
  setIsTagsDropdownVisible(false);
328
- onTagSelect(event);
358
+ onTagSelect(tag);
329
359
  // @ts-ignore
330
360
  showSuccessToastr && neetoui.Toastr.success("", {
331
361
  icon: "👍",
@@ -363,12 +393,10 @@ var Tags$2 = function Tags(_ref) {
363
393
  var tagsSelectorProps = {
364
394
  defaultMenuIsOpen: showAddTagsOnTitle,
365
395
  tags: tags,
366
- onChange: function onChange(event) {
367
- return handleAddExistingTag(event);
368
- },
369
- onCreateOption: function onCreateOption(event) {
396
+ onChange: handleAddExistingTag,
397
+ onCreateOption: function onCreateOption(tagName) {
370
398
  setIsTagsDropdownVisible(false);
371
- onTagCreate(event);
399
+ onTagCreate(tagName);
372
400
  },
373
401
  selectProps: selectProps
374
402
  };