feat: Refactor level display layout to improve structure and accessibility

This commit is contained in:
Slipstream 2025-05-30 19:26:47 -06:00
parent 859b20dfe1
commit 6f77a9cc73
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -378,24 +378,25 @@ class LevelingCog(commands.Cog):
def __init__(self, target_member: discord.Member, level: int, xp: int, xp_needed: int, next_level: int, bar: str, progress_percent: int):
super().__init__()
# Container for overall layout, possibly with accent color
container = ui.Container(accent_colour=discord.Color.blue())
self.add_item(container)
# Outer container for accent color
outer_container = ui.Container(accent_colour=discord.Color.blue())
self.add_item(outer_container)
# Title
container.add_item(ui.TextDisplay(f"**{target_member.display_name}'s Level**")) # Using TextDisplay for title
# Thumbnail
# Section to hold content and thumbnail as accessory
section = ui.Section()
if target_member.display_avatar:
container.add_item(ui.Thumbnail(media=target_member.display_avatar.url, description="User Avatar"))
# Main content
container.add_item(ui.TextDisplay(f"**Level:** {level}"))
container.add_item(ui.TextDisplay(f"**XP:** {xp} / {xp_needed}"))
container.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small)) # Adding a separator
container.add_item(ui.TextDisplay(f"**Progress to Level {next_level}:**"))
container.add_item(ui.TextDisplay(f"[{bar}] {progress_percent}%"))
section.accessory = ui.Thumbnail(media=target_member.display_avatar.url, description="User Avatar")
outer_container.add_item(section)
# Add text components to the section
section.add_item(ui.TextDisplay(f"**{target_member.display_name}'s Level**"))
section.add_item(ui.TextDisplay(f"**Level:** {level}"))
section.add_item(ui.TextDisplay(f"**XP:** {xp} / {xp_needed}"))
section.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small))
section.add_item(ui.TextDisplay(f"**Progress to Level {next_level}:**"))
section.add_item(ui.TextDisplay(f"[{bar}] {progress_percent}%"))
view = LevelCheckView(target, level, xp, xp_needed, next_level, bar, int(progress * 100))
await ctx.send(view=view)