feat: Update UI sections to explicitly handle thumbnail and accessory parameters

This commit is contained in:
Slipstream 2025-05-30 19:28:13 -06:00
parent 6f77a9cc73
commit 599e874d36
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -382,11 +382,14 @@ class LevelingCog(commands.Cog):
outer_container = ui.Container(accent_colour=discord.Color.blue())
self.add_item(outer_container)
# Section to hold content and thumbnail as accessory
section = ui.Section()
# Prepare thumbnail accessory
thumbnail_accessory = None
if target_member.display_avatar:
section.accessory = ui.Thumbnail(media=target_member.display_avatar.url, description="User Avatar")
thumbnail_accessory = ui.Thumbnail(media=target_member.display_avatar.url, description="User Avatar")
# Section to hold content and thumbnail as accessory
# Pass accessory in __init__, even if None, to satisfy the constructor
section = ui.Section(accessory=thumbnail_accessory)
outer_container.add_item(section)
# Add text components to the section
@ -438,7 +441,7 @@ class LevelingCog(commands.Cog):
if not member:
continue
user_section = ui.Section()
user_section = ui.Section(accessory=None) # Explicitly pass accessory=None
user_section.add_item(ui.TextDisplay(f"**{i}. {member.display_name}**"))
user_section.add_item(ui.TextDisplay(f"Level: {data['level']} | XP: {data['xp']}"))
main_container.add_item(user_section)
@ -516,7 +519,7 @@ class LevelingCog(commands.Cog):
sorted_roles_items = sorted(level_roles_data.items())
for level, role_data_or_id in sorted_roles_items:
role_section = ui.Section()
role_section = ui.Section(accessory=None) # Explicitly pass accessory=None
role_section.add_item(ui.TextDisplay(f"**Level {level}:**"))
if isinstance(role_data_or_id, dict): # Gendered roles
@ -706,7 +709,7 @@ class LevelingCog(commands.Cog):
]
for name, value_str in settings_to_display:
setting_section = ui.Section()
setting_section = ui.Section(accessory=None) # Explicitly pass accessory=None
setting_section.add_item(ui.TextDisplay(f"**{name}:** {value_str}"))
main_container.add_item(setting_section)
@ -978,7 +981,7 @@ class LevelingCog(commands.Cog):
main_container.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small))
if created_roles_list:
created_section = ui.Section()
created_section = ui.Section(accessory=None) # Explicitly pass accessory=None
created_section.add_item(ui.TextDisplay("**Created Roles:**"))
# For potentially long lists, join with newline. TextDisplay handles multiline.
created_section.add_item(ui.TextDisplay("\n".join(created_roles_list) if created_roles_list else "None"))
@ -987,13 +990,13 @@ class LevelingCog(commands.Cog):
if updated_roles_list:
updated_section = ui.Section()
updated_section = ui.Section(accessory=None) # Explicitly pass accessory=None
updated_section.add_item(ui.TextDisplay("**Updated Roles:**"))
updated_section.add_item(ui.TextDisplay("\n".join(updated_roles_list) if updated_roles_list else "None"))
main_container.add_item(updated_section)
main_container.add_item(ui.Separator(spacing=discord.SeparatorSpacing.small, visible=False))
gender_detection_section = ui.Section()
gender_detection_section = ui.Section(accessory=None) # Explicitly pass accessory=None
gender_detection_section.add_item(ui.TextDisplay("**Gender Detection:**"))
gender_text = "Gender-specific roles will be assigned based on pronoun roles." if has_pronoun_roles_flag else "No pronoun roles detected. Using default titles."
gender_detection_section.add_item(ui.TextDisplay(gender_text))