mirror of
https://github.com/UiO-Gaming/mustafa.git
synced 2026-11-05 13:56:48 +01:00
add scroller view
This commit is contained in:
1 file changed
+24
@@ -1,5 +1,7 @@
|
||||
import discord
|
||||
|
||||
from .misc_utils import Paginator
|
||||
|
||||
|
||||
def get_color(discord_object: discord.User | discord.Member | discord.Role) -> discord.Color:
|
||||
"""
|
||||
@@ -17,3 +19,25 @@ def get_color(discord_object: discord.User | discord.Member | discord.Role) -> d
|
||||
return discord_object.color
|
||||
|
||||
return discord.Colour(0x99AAB5)
|
||||
|
||||
class ScrollerButton(discord.ui.Button):
|
||||
def __init__(self, paginator: Paginator, button_action: callable, content_constructor: callable, label: str, disabled: bool = False):
|
||||
super().__init__(label=label, disabled=disabled)
|
||||
self.paginator = paginator
|
||||
self.button_action = button_action
|
||||
self.content_constructor = content_constructor
|
||||
|
||||
async def callback(self, interaction: discord.Interaction):
|
||||
await interaction.response.defer()
|
||||
content = self.content_constructor(self.paginator, self.button_action(), interaction.message.embeds[0])
|
||||
await interaction.message.edit(embed=content, view=Scroller(self.paginator, self.content_constructor))
|
||||
|
||||
class Scroller(discord.ui.View):
|
||||
def __init__(self, paginatior: Paginator, content_constructor: callable):
|
||||
super().__init__()
|
||||
self.paginator = paginatior
|
||||
|
||||
self.add_item(ScrollerButton(self.paginator, self.paginator.first_page, content_constructor, label='<<', disabled=True if self.paginator.current_page == 1 else False))
|
||||
self.add_item(ScrollerButton(self.paginator, self.paginator.previous_page, content_constructor, label='<', disabled=True if self.paginator.current_page == 1 else False))
|
||||
self.add_item(ScrollerButton(self.paginator, self.paginator.next_page, content_constructor, label='>', disabled=True if self.paginator.current_page == self.paginator.total_page_count else False))
|
||||
self.add_item(ScrollerButton(self.paginator, self.paginator.last_page, content_constructor, label='>>', disabled=True if self.paginator.current_page == self.paginator.total_page_count else False))
|
||||
Reference in new issue
Block a user