diff --git a/app/assets/javascripts/discourse/controllers/user-activity.js.es6 b/app/assets/javascripts/discourse/controllers/user-activity.js.es6 index d633f21b043..cd4ca93ad7a 100644 --- a/app/assets/javascripts/discourse/controllers/user-activity.js.es6 +++ b/app/assets/javascripts/discourse/controllers/user-activity.js.es6 @@ -10,9 +10,9 @@ export default Ember.Controller.extend({ _showFooter: function() { var showFooter; if (this.get("userActionType")) { - const stat = _.find(this.get("model.stats"), { - action_type: this.get("userActionType") - }); + const stat = (this.get("model.stats") || []).find( + s => s.action_type === this.get("userActionType") + ); showFooter = stat && stat.count <= this.get("model.stream.itemsLoaded"); } else { showFooter = diff --git a/app/assets/javascripts/polyfills.js b/app/assets/javascripts/polyfills.js index 93b18ae9ec0..116b16d77cf 100644 --- a/app/assets/javascripts/polyfills.js +++ b/app/assets/javascripts/polyfills.js @@ -85,7 +85,7 @@ if (!Array.prototype.includes) { if (sameValueZero(o[k], searchElement)) { return true; } - // c. Increase k by 1. + // c. Increase k by 1. k++; } @@ -102,7 +102,7 @@ if (!String.prototype.includes) { if (typeof start !== 'number') { start = 0 } - + if (start + search.length > this.length) { return false } else { @@ -111,4 +111,52 @@ if (!String.prototype.includes) { } }) } + +// https://tc39.github.io/ecma262/#sec-array.prototype.find +if (!Array.prototype.find) { + Object.defineProperty(Array.prototype, 'find', { + value: function(predicate) { + // 1. Let O be ? ToObject(this value). + if (this == null) { + throw new TypeError('"this" is null or not defined'); + } + + var o = Object(this); + + // 2. Let len be ? ToLength(? Get(O, "length")). + var len = o.length >>> 0; + + // 3. If IsCallable(predicate) is false, throw a TypeError exception. + if (typeof predicate !== 'function') { + throw new TypeError('predicate must be a function'); + } + + // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. + var thisArg = arguments[1]; + + // 5. Let k be 0. + var k = 0; + + // 6. Repeat, while k < len + while (k < len) { + // a. Let Pk be ! ToString(k). + // b. Let kValue be ? Get(O, Pk). + // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). + // d. If testResult is true, return kValue. + var kValue = o[k]; + if (predicate.call(thisArg, kValue, k, o)) { + return kValue; + } + // e. Increase k by 1. + k++; + } + + // 7. Return undefined. + return undefined; + }, + configurable: true, + writable: true + }); +} + /* eslint-enable */