Refactor button layout in ShopView, PurchaseView, and InventoryView to explicitly assign rows for better organization. Update cancel and close buttons to new rows for improved UI structure.
Some checks are pending
Run pre-commit / Run pre-commit (push) Waiting to run

This commit is contained in:
Valerie 2025-05-25 23:52:14 -04:00
parent 68d8c85c23
commit 3ee6707cc5

View file

@ -12,7 +12,10 @@ class ShopView(View):
self.current_item = None
self.quantity = None
self.setup_shop_select()
self.add_item(Button(label="Cancel", style=discord.ButtonStyle.red, custom_id="cancel"))
# Add cancel button to a different row
cancel_button = Button(label="Cancel", style=discord.ButtonStyle.red, custom_id="cancel", row=4)
cancel_button.callback = self.cancel
self.add_item(cancel_button)
async def interaction_check(self, interaction: discord.Interaction) -> bool:
if interaction.user != self.ctx.author:
@ -23,8 +26,7 @@ class ShopView(View):
async def on_error(self, interaction: discord.Interaction, error: Exception, item: Item) -> None:
await interaction.response.send_message(f"An error occurred: {str(error)}", ephemeral=True)
@discord.ui.button(label="Cancel", style=discord.ButtonStyle.red, custom_id="cancel")
async def cancel(self, interaction: discord.Interaction, button: Button):
async def cancel(self, interaction: discord.Interaction):
await interaction.response.edit_message(content="Shop menu cancelled.", embed=None, view=None)
self.stop()
@ -42,7 +44,7 @@ class ShopView(View):
shop_select = Select(
placeholder="Select a shop",
options=options,
row=0
row=0 # Explicitly set to row 0
)
shop_select.callback = self.shop_selected
self.add_item(shop_select)
@ -79,7 +81,7 @@ class ShopView(View):
item_select = Select(
placeholder="Select an item",
options=options[:25], # Discord limit
row=1
row=1 # Explicitly set to row 1
)
item_select.callback = self.item_selected
self.add_item(item_select)
@ -111,6 +113,23 @@ class PurchaseView(View):
self.item_data = item_data
self.quantity = None
# Add buttons with explicit row assignments
buy_one = Button(label="Buy 1", style=discord.ButtonStyle.green, row=1)
buy_one.callback = self.buy_one
self.add_item(buy_one)
buy_five = Button(label="Buy 5", style=discord.ButtonStyle.green, row=1)
buy_five.callback = self.buy_five
self.add_item(buy_five)
custom = Button(label="Custom Amount", style=discord.ButtonStyle.blurple, row=1)
custom.callback = self.custom_amount
self.add_item(custom)
cancel = Button(label="Cancel", style=discord.ButtonStyle.red, row=1)
cancel.callback = self.cancel
self.add_item(cancel)
async def interaction_check(self, interaction: discord.Interaction) -> bool:
if interaction.user != self.ctx.author:
await interaction.response.send_message("This menu is not for you!", ephemeral=True)
@ -215,7 +234,10 @@ class InventoryView(View):
self.inventory = inventory
self.selected_item = None
self.setup_inventory_select()
self.add_item(Button(label="Close", style=discord.ButtonStyle.red, custom_id="close"))
# Add close button to a different row
close_button = Button(label="Close", style=discord.ButtonStyle.red, custom_id="close", row=4)
close_button.callback = self.close
self.add_item(close_button)
async def interaction_check(self, interaction: discord.Interaction) -> bool:
if interaction.user != self.ctx.author:
@ -223,7 +245,7 @@ class InventoryView(View):
return False
return True
@discord.ui.button(label="Close", style=discord.ButtonStyle.red, custom_id="close")
@button(label="Close", style=discord.ButtonStyle.red, custom_id="close", row=4)
async def close(self, interaction: discord.Interaction, button: Button):
await interaction.response.edit_message(content="Inventory closed.", embed=None, view=None)
self.stop()