refactor(welcome): Consolidate info displays in welcome/goodbye messages

Group related member information and server statistics into single
TextDisplay components. This streamlines the UI layout, reduces the
number of elements, and potentially improves rendering efficiency.
This commit is contained in:
Slipstreamm 2025-06-14 14:14:19 -06:00
parent aa43302903
commit a2eb6f33f1

View File

@ -41,12 +41,8 @@ class WelcomeMessageView(ui.LayoutView):
header_section.add_item(ui.TextDisplay(message))
# Add member info to the header section
header_section.add_item(ui.TextDisplay(f"**Member:** {member.display_name}"))
header_section.add_item(ui.TextDisplay(f"**Account Created:** {member.created_at.strftime('%B %d, %Y')}"))
# Calculate account age
account_age = datetime.now(timezone.utc) - member.created_at
age_str = f"{account_age.days} days ago"
if account_age.days >= 365:
years = account_age.days // 365
months = (account_age.days % 365) // 30
@ -54,13 +50,23 @@ class WelcomeMessageView(ui.LayoutView):
elif account_age.days >= 30:
months = account_age.days // 30
age_str = f"{months} month{'s' if months != 1 else ''} ago"
else:
age_str = f"{account_age.days} day{'s' if account_age.days != 1 else ''} ago"
header_section.add_item(ui.TextDisplay(f"**Account Age:** {age_str}"))
member_info = (
f"**Member:** {member.display_name}\n"
f"**Account Created:** {member.created_at.strftime('%B %d, %Y')}\n"
f"**Account Age:** {age_str}"
)
header_section.add_item(ui.TextDisplay(member_info))
# Add server stats to the header section
header_section.add_item(ui.TextDisplay(f"📊 **Server Statistics**"))
header_section.add_item(ui.TextDisplay(f"**Total Members:** {member_count:,}"))
header_section.add_item(ui.TextDisplay(f"**You are member #{member_count:,}**"))
server_stats = (
f"📊 **Server Statistics**\n"
f"**Total Members:** {member_count:,}\n"
f"**You are member #{member_count:,}**"
)
header_section.add_item(ui.TextDisplay(server_stats))
# Add welcome footer
header_section.add_item(ui.TextDisplay("💬 Feel free to introduce yourself and have fun!"))
@ -103,8 +109,10 @@ class GoodbyeMessageView(ui.LayoutView):
header_section.add_item(ui.TextDisplay(message))
# Add member info to the header section
header_section.add_item(ui.TextDisplay(f"**Member:** {member.display_name}"))
header_section.add_item(ui.TextDisplay(f"**Username:** {member.name}"))
member_info_parts = [
f"**Member:** {member.display_name}",
f"**Username:** {member.name}"
]
# Show join date if available
if hasattr(member, 'joined_at') and member.joined_at:
@ -121,12 +129,17 @@ class GoodbyeMessageView(ui.LayoutView):
else:
duration_str = f"{time_in_server.days} day{'s' if time_in_server.days != 1 else ''}"
header_section.add_item(ui.TextDisplay(f"**Joined:** {join_date}"))
header_section.add_item(ui.TextDisplay(f"**Time in Server:** {duration_str}"))
member_info_parts.append(f"**Joined:** {join_date}")
member_info_parts.append(f"**Time in Server:** {duration_str}")
header_section.add_item(ui.TextDisplay("\n".join(member_info_parts)))
# Add server stats to the header section
header_section.add_item(ui.TextDisplay(f"📊 **Server Statistics**"))
header_section.add_item(ui.TextDisplay(f"**Current Members:** {member_count:,}"))
server_stats = (
f"📊 **Server Statistics**\n"
f"**Current Members:** {member_count:,}"
)
header_section.add_item(ui.TextDisplay(server_stats))
container.add_item(header_section)
self.add_item(container)