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
Some checks are pending
Run pre-commit / Run pre-commit (push) Waiting to run
This commit is contained in:
parent
68d8c85c23
commit
3ee6707cc5
1 changed files with 29 additions and 7 deletions
36
shop/ui.py
36
shop/ui.py
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue