feat: Refactor UI component initialization for level and leaderboard displays to improve layout consistency

This commit is contained in:
Slipstream 2025-05-30 19:44:23 -06:00
parent bcdfb697fd
commit bb731506b9
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -381,8 +381,8 @@ class LevelingCog(commands.Cog):
current_row = 0
# Outer container for accent color
outer_container = ui.Container(accent_colour=discord.Color.blue())
self.add_item(outer_container, row=current_row)
outer_container = ui.Container(accent_colour=discord.Color.blue(), row=current_row)
self.add_item(outer_container)
current_row += 1
# Prepare thumbnail accessory
@ -391,18 +391,18 @@ class LevelingCog(commands.Cog):
thumbnail_accessory = ui.Thumbnail(media=target_member.display_avatar.url, description="User Avatar")
# Section to hold content and thumbnail as accessory
section = ui.Section(accessory=thumbnail_accessory)
self.add_item(section, row=current_row)
section = ui.Section(accessory=thumbnail_accessory, row=current_row)
self.add_item(section)
current_row += 1
# Add text components, each on its own row
self.add_item(ui.TextDisplay(f"**{target_member.display_name}'s Level**"), row=current_row)
self.add_item(ui.TextDisplay(f"**{target_member.display_name}'s Level**", row=current_row))
current_row += 1
self.add_item(ui.TextDisplay(f"**Level:** {level}\n**XP:** {xp} / {xp_needed}"), row=current_row)
self.add_item(ui.TextDisplay(f"**Level:** {level}\n**XP:** {xp} / {xp_needed}", row=current_row))
current_row += 1
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small), row=current_row)
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small, row=current_row))
current_row += 1
self.add_item(ui.TextDisplay(f"**Progress to Level {next_level}:**\n[{bar}] {progress_percent}%"), row=current_row)
self.add_item(ui.TextDisplay(f"**Progress to Level {next_level}:**\n[{bar}] {progress_percent}%", row=current_row))
current_row += 1
view = LevelCheckView(target, level, xp, xp_needed, next_level, bar, int(progress * 100))
@ -433,17 +433,17 @@ class LevelingCog(commands.Cog):
current_row = 0
main_container = ui.Container(accent_colour=discord.Color.gold())
self.add_item(main_container, row=current_row)
main_container = ui.Container(accent_colour=discord.Color.gold(), row=current_row)
self.add_item(main_container)
current_row += 1
self.add_item(ui.TextDisplay(f"**{guild_name} Level Leaderboard**"), row=current_row)
self.add_item(ui.TextDisplay(f"**{guild_name} Level Leaderboard**", row=current_row))
current_row += 1
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small), row=current_row)
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small, row=current_row))
current_row += 1
if not sorted_leaderboard_data:
self.add_item(ui.TextDisplay("The leaderboard is empty!"), row=current_row)
self.add_item(ui.TextDisplay("The leaderboard is empty!", row=current_row))
current_row += 1
return
@ -453,8 +453,8 @@ class LevelingCog(commands.Cog):
continue
# Each user's entry gets its own section and is added to the view
user_section = ui.Section(accessory=None)
self.add_item(user_section, row=current_row)
user_section = ui.Section(accessory=None, row=current_row)
self.add_item(user_section)
current_row += 1
# Add text components to the user_section (these are children of user_section, not the main view)
@ -463,7 +463,7 @@ class LevelingCog(commands.Cog):
# Add separator to the view
if i < len(sorted_leaderboard_data[:10]):
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small, visible=False), row=current_row)
self.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small, visible=False, row=current_row))
current_row += 1
view = LeaderboardView(ctx.guild.name, sorted_data, guild_members)