From da8b70266f0079e7f26cf59e53f872b23283f051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=8C=E8=8E=9E?= Date: Sun, 20 Feb 2022 16:27:24 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=A4=8D=E7=94=A8=E7=BF=BB=E9=A1=B5?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/paginatedInlineSelector.ts | 32 +++++++++++++++------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/utils/paginatedInlineSelector.ts b/src/utils/paginatedInlineSelector.ts index e9993ab..1094984 100644 --- a/src/utils/paginatedInlineSelector.ts +++ b/src/utils/paginatedInlineSelector.ts @@ -9,24 +9,26 @@ export default async function createPaginatedInlineSelector(chat: TelegramChat, let currentPage = 0; const totalPages = Math.ceil(choices.length / PAGE_SIZE); let sentMessage: Api.Message; + const buttonPageUp = Button.inline('⏪ 上一页', chat.parent.registerCallback(() => { + currentPage = Math.max(0, currentPage - 1); + sentMessage.edit({ + text: message + `\n\n第 ${currentPage + 1} 页,共 ${totalPages} 页`, + buttons: getButtons(), + }); + })); + const buttonPageDown = Button.inline('下一页 ⏩', chat.parent.registerCallback(() => { + currentPage = Math.min(totalPages - 1, currentPage + 1); + console.log(currentPage); + sentMessage.edit({ + text: message + `\n\n第 ${currentPage + 1} 页,共 ${totalPages} 页`, + buttons: getButtons(), + }); + })); const getButtons = () => { const buttons = arrays.pagination(choices, PAGE_SIZE, currentPage); const paginateButtons: ButtonLike[] = []; - currentPage > 0 && paginateButtons.push(Button.inline('⏪ 上一页', chat.parent.registerCallback(() => { - currentPage = Math.max(0, currentPage - 1); - sentMessage.edit({ - text: message + `\n\n第 ${currentPage + 1} 页,共 ${totalPages} 页`, - buttons: getButtons(), - }); - }))); - currentPage !== totalPages - 1 && paginateButtons.push(Button.inline('下一页 ⏩', chat.parent.registerCallback(() => { - currentPage = Math.min(totalPages - 1, currentPage + 1); - console.log(currentPage); - sentMessage.edit({ - text: message + `\n\n第 ${currentPage + 1} 页,共 ${totalPages} 页`, - buttons: getButtons(), - }); - }))); + currentPage > 0 && paginateButtons.push(buttonPageUp); + currentPage !== totalPages - 1 && paginateButtons.push(buttonPageDown); paginateButtons.length && buttons.push(paginateButtons); return buttons; };