react-film
Version:
React component for showing carousel just like a film strip
28 lines (24 loc) • 2.18 kB
JavaScript
import "core-js/modules/web.timers.js";
import "core-js/modules/es.date.now.js";
import "core-js/modules/es.date.to-string.js";
function later(fn, interval) {
if (interval > 0) {
return setTimeout(fn, interval);
}
fn();
}
export default function (fn, interval) {
var last = 0;
var timeout;
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
timeout || (timeout = later(function () {
timeout = null;
last = Date.now();
fn.apply(void 0, args);
}, interval + last - Date.now()));
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2RlYm91bmNlLmpzIl0sIm5hbWVzIjpbImxhdGVyIiwiZm4iLCJpbnRlcnZhbCIsInNldFRpbWVvdXQiLCJsYXN0IiwidGltZW91dCIsImFyZ3MiLCJEYXRlIiwibm93Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0EsS0FBVCxDQUFlQyxFQUFmLEVBQW1CQyxRQUFuQixFQUE2QjtBQUMzQixNQUFJQSxRQUFRLEdBQUcsQ0FBZixFQUFrQjtBQUNoQixXQUFPQyxVQUFVLENBQUNGLEVBQUQsRUFBS0MsUUFBTCxDQUFqQjtBQUNEOztBQUVERCxFQUFBQSxFQUFFO0FBQ0g7O0FBRUQsZUFBZSxVQUFVQSxFQUFWLEVBQWNDLFFBQWQsRUFBd0I7QUFDckMsTUFBSUUsSUFBSSxHQUFHLENBQVg7QUFDQSxNQUFJQyxPQUFKO0FBRUEsU0FBTyxZQUFtQjtBQUFBLHNDQUFOQyxJQUFNO0FBQU5BLE1BQUFBLElBQU07QUFBQTs7QUFDeEJELElBQUFBLE9BQU8sS0FDSkEsT0FBTyxHQUFHTCxLQUFLLENBQUMsWUFBTTtBQUNyQkssTUFBQUEsT0FBTyxHQUFHLElBQVY7QUFDQUQsTUFBQUEsSUFBSSxHQUFHRyxJQUFJLENBQUNDLEdBQUwsRUFBUDtBQUNBUCxNQUFBQSxFQUFFLE1BQUYsU0FBTUssSUFBTjtBQUNELEtBSmUsRUFJYkosUUFBUSxHQUFHRSxJQUFYLEdBQWtCRyxJQUFJLENBQUNDLEdBQUwsRUFKTCxDQURYLENBQVA7QUFNRCxHQVBEO0FBUUQiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBsYXRlcihmbiwgaW50ZXJ2YWwpIHtcbiAgaWYgKGludGVydmFsID4gMCkge1xuICAgIHJldHVybiBzZXRUaW1lb3V0KGZuLCBpbnRlcnZhbCk7XG4gIH1cblxuICBmbigpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoZm4sIGludGVydmFsKSB7XG4gIGxldCBsYXN0ID0gMDtcbiAgbGV0IHRpbWVvdXQ7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgdGltZW91dCB8fFxuICAgICAgKHRpbWVvdXQgPSBsYXRlcigoKSA9PiB7XG4gICAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgICAgICBsYXN0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgZm4oLi4uYXJncyk7XG4gICAgICB9LCBpbnRlcnZhbCArIGxhc3QgLSBEYXRlLm5vdygpKSk7XG4gIH07XG59XG4iXX0=