@necord/pagination
Version:
A lightweight Pagination module for Necord
35 lines (34 loc) • 1.41 kB
TypeScript
import { BaseInteraction, BaseMessageOptions as PageOptions } from 'discord.js';
import { PageBuilder } from './page-builder.helper';
import { NecordPaginationOptions } from '../interfaces';
type PagesFactory = (page: number, maxPages: number) => Promise<PageBuilder> | PageBuilder;
type PagesFilter = (interaction: BaseInteraction) => Promise<boolean> | boolean;
export declare class PaginationBuilder {
customId: string;
private _maxPages;
get maxPages(): number;
set maxPages(value: number);
filters: PagesFilter[];
private pages;
private pagesFactory;
private readonly options;
constructor(options: NecordPaginationOptions);
setCustomId(customId: string): this;
setMaxPages(maxPages: number): this;
setPages(pages: PageBuilder[]): this;
addPage(page: PageBuilder): this;
clearPages(): this;
setPagesFactory(factory: PagesFactory): this;
setButtonsAppearance(buttons: NecordPaginationOptions['buttons']): this;
setAllowSkip(allowSkip: boolean): this;
setAllowTraversal(allowTraversal: boolean): this;
setFilter(filter: PagesFilter): this;
setFilters(filters: PagesFilter[]): this;
addFilter(filter: PagesFilter): this;
clearFilters(): this;
filter(interaction: BaseInteraction): Promise<boolean>;
build(page?: number): Promise<PageOptions>;
copy(): PaginationBuilder;
private generateButtons;
}
export {};