You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.7 KiB
48 lines
1.7 KiB
3 years ago
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.LivePagination = void 0;
|
||
|
const pagination_1 = require("./pagination");
|
||
|
class LivePagination extends pagination_1.Pagination {
|
||
|
constructor(channel, pages, originalMessage, client, loopPages, message) {
|
||
|
super(channel, pages, originalMessage, client, loopPages, message);
|
||
|
}
|
||
|
;
|
||
|
setOnScrollAttemptHandler(func) {
|
||
|
this._onScrollAttempt = func;
|
||
|
return this;
|
||
|
}
|
||
|
;
|
||
|
async start(options) {
|
||
|
if (!this._onScrollAttempt) {
|
||
|
LivePagination.throwNoScrollAttempt();
|
||
|
}
|
||
|
await super.start(options);
|
||
|
return this;
|
||
|
}
|
||
|
async setControllers(endTime, user) {
|
||
|
if (!this._onScrollAttempt) {
|
||
|
LivePagination.throwNoScrollAttempt();
|
||
|
}
|
||
|
await super.setControllers(endTime, user);
|
||
|
return this;
|
||
|
}
|
||
|
;
|
||
|
async setPage(page) {
|
||
|
if (!this._onScrollAttempt) {
|
||
|
LivePagination.throwNoScrollAttempt();
|
||
|
}
|
||
|
this._onScrollAttempt(this, page, typeof this.pages[page] !== 'undefined' && this.pages[page] !== null, typeof this.knownMax === 'number' ? page < this.knownMax : true);
|
||
|
await super.setPage(page);
|
||
|
return this;
|
||
|
}
|
||
|
;
|
||
|
static throwNoScrollAttempt() {
|
||
|
throw new Error("Fatal Pagination Error: You tried to start the LivePagination without setting a scrollAttemptEvent. This is necessary to allow the pagination to be built as the user scrolls. If you don't know what you're doing here, just make a Pagination instead.");
|
||
|
}
|
||
|
set onScrollAttempt(func) {
|
||
|
this._onScrollAttempt = func;
|
||
|
}
|
||
|
;
|
||
|
}
|
||
|
exports.LivePagination = LivePagination;
|