diff --git a/app/assets/javascripts/select-kit/components/mini-tag-chooser.js.es6 b/app/assets/javascripts/select-kit/components/mini-tag-chooser.js.es6 index 90ef12c7058..9c25173b2c2 100644 --- a/app/assets/javascripts/select-kit/components/mini-tag-chooser.js.es6 +++ b/app/assets/javascripts/select-kit/components/mini-tag-chooser.js.es6 @@ -80,14 +80,16 @@ export default ComboBox.extend(TagsMixin, { this.insertAfterCollection(ERRORS_COLLECTION, SELECTED_TAGS_COLLECTION); }, - caretIcon: computed("selectKit.hasReachedMaximum", function() { - return this.selectKit.hasReachedMaximum ? null : "plus"; + caretIcon: computed("value.[]", function() { + return this.selectKit.options.maximum >= makeArray(this.value).length + ? null + : "plus"; }), modifySelection(content) { - let joinedTags = this.value.join(", "); + let joinedTags = makeArray(this.value).join(", "); - if (!this.selectKit.hasReachedMinimum) { + if (!this.selectKit.options.maximum >= makeArray(this.value).length) { const key = this.selectKit.options.minimumLabel || "select_kit.min_content_not_reached"; diff --git a/app/assets/javascripts/select-kit/components/select-kit.js.es6 b/app/assets/javascripts/select-kit/components/select-kit.js.es6 index 06d1ecf15df..39d47053125 100644 --- a/app/assets/javascripts/select-kit/components/select-kit.js.es6 +++ b/app/assets/javascripts/select-kit/components/select-kit.js.es6 @@ -44,9 +44,7 @@ export default Component.extend( "selectKit.isExpanded:is-expanded", "selectKit.isDisabled:is-disabled", "selectKit.isHidden:is-hidden", - "selectKit.hasSelection:has-selection", - "selectKit.hasReachedMaximum:has-reached-maximum", - "selectKit.hasReachedMinimum:has-reached-minimum" + "selectKit.hasSelection:has-selection" ], tabindex: 0, content: null, @@ -263,9 +261,7 @@ export default Component.extend( limitMatches: null, placement: "bottom-start", filterComponent: "select-kit/select-kit-filter", - selectedNameComponent: "selected-name", - hasReachedMaximum: "hasReachedMaximum", - hasReachedMinimum: "hasReachedMinimum" + selectedNameComponent: "selected-name" }, autoFilterable: computed("content.[]", "selectKit.filter", function() { @@ -296,34 +292,6 @@ export default Component.extend( } ), - hasReachedMaximum: computed( - "selectKit.options.maximum", - "value", - function() { - const maximum = parseInt(this.selectKit.options.maximum, 10); - - if (maximum && makeArray(this.value).length >= maximum) { - return true; - } - - return false; - } - ), - - hasReachedMinimum: computed( - "selectKit.options.minimum", - "value", - function() { - const minimum = parseInt(this.selectKit.options.minimum, 10); - - if (!minimum || makeArray(this.value).length >= minimum) { - return true; - } - - return false; - } - ), - createContentFromInput(input) { return input; }, @@ -345,7 +313,6 @@ export default Component.extend( const selection = Ember.makeArray(this.value); const maximum = this.selectKit.options.maximum; - if (maximum && selection.length >= maximum) { const key = this.selectKit.options.maximumLabel || @@ -354,15 +321,6 @@ export default Component.extend( return false; } - const minimum = this.selectKit.options.minimum; - if (minimum && selection.length <= minimum) { - const key = - this.selectKit.options.minimumLabel || - "select_kit.min_content_not_reached"; - this.addError(I18n.t(key, { count: minimum })); - return false; - } - return true; }, diff --git a/app/assets/javascripts/select-kit/mixins/tags.js.es6 b/app/assets/javascripts/select-kit/mixins/tags.js.es6 index 016c7330c69..9a6faecba95 100644 --- a/app/assets/javascripts/select-kit/mixins/tags.js.es6 +++ b/app/assets/javascripts/select-kit/mixins/tags.js.es6 @@ -2,6 +2,7 @@ import { reads } from "@ember/object/computed"; import { ajax } from "discourse/lib/ajax"; import { popupAjaxError } from "discourse/lib/ajax-error"; import Mixin from "@ember/object/mixin"; +import { makeArray } from "discourse-common/lib/helpers"; export default Mixin.create({ searchTags(url, data, callback) { @@ -22,7 +23,7 @@ export default Mixin.create({ allowAnyTag: reads("site.can_create_tag"), validateCreate(filter, content) { - if (this.selectKit.hasReachedMaximum) { + if (this.selectKit.options.maximum >= makeArray(this.value).length) { this.addError( I18n.t("select_kit.max_content_reached", { count: this.selectKit.limit