@@ -68,9 +68,9 @@ class _HeistNavBtn(discord.ui.Button):
6868 def __init__ (self , direction : str , view : "HeistSelectionView" , disabled : bool = False ):
6969 match direction :
7070 case "prev" :
71- label , emoji = "Previous " , "◀️"
71+ label , emoji = "◀ " , None
7272 case "next" :
73- label , emoji = "Next " , "▶️"
73+ label , emoji = "▶ " , None
7474 super ().__init__ (
7575 label = label , emoji = emoji , style = discord .ButtonStyle .secondary , disabled = disabled
7676 )
@@ -221,7 +221,7 @@ def _build_content(self, disabled: bool = False):
221221 else f"Lv.{ self .player_level } "
222222 )
223223
224- lines = [f"## 🎯 Choose Your Heist - Page { self . page + 1 } / { self . total_pages } \n " ]
224+ lines = [f"## 🎯 Choose Your Heist\n " ]
225225 for name , data in page_heists :
226226 loot_item = name if name in ITEMS and ITEMS [name ][1 ].get ("type" ) == "loot" else None
227227 if loot_item :
@@ -252,20 +252,22 @@ def _build_content(self, disabled: bool = False):
252252 select .disabled = disabled
253253 select_row = discord .ui .ActionRow (select )
254254
255- nav_row = discord .ui .ActionRow ()
256- if self .page > 0 :
257- nav_row .add_item (_HeistNavBtn ("prev" , self , disabled = disabled ))
258- if self .page < self .total_pages - 1 :
259- nav_row .add_item (_HeistNavBtn ("next" , self , disabled = disabled ))
255+ nav_row = discord .ui .ActionRow (
256+ _HeistNavBtn ("prev" , self , disabled = disabled or self .page == 0 ),
257+ discord .ui .Button (
258+ label = f"{ self .page + 1 } /{ self .total_pages } " ,
259+ style = discord .ButtonStyle .secondary ,
260+ disabled = True ,
261+ ),
262+ _HeistNavBtn ("next" , self , disabled = disabled or self .page == self .total_pages - 1 ),
263+ )
260264
261265 components : list = [
262266 discord .ui .TextDisplay ("\n " .join (lines )),
263267 discord .ui .Separator (),
264268 select_row ,
269+ nav_row ,
265270 ]
266- if nav_row .children :
267- components .append (nav_row )
268-
269271 self .add_item (discord .ui .Container (* components ))
270272
271273 async def interaction_check (self , interaction : discord .Interaction ) -> bool :
@@ -285,14 +287,8 @@ async def on_timeout(self):
285287
286288class _ShopNavBtn (discord .ui .Button ):
287289 def __init__ (self , direction : str , shop_view : "ShopView" , disabled : bool = False ):
288- match direction :
289- case "prev" :
290- label , emoji = "Previous" , "◀️"
291- case "next" :
292- label , emoji = "Next" , "▶️"
293- super ().__init__ (
294- label = label , emoji = emoji , style = discord .ButtonStyle .secondary , disabled = disabled
295- )
290+ label = "◀" if direction == "prev" else "▶"
291+ super ().__init__ (label = label , style = discord .ButtonStyle .secondary , disabled = disabled )
296292 self .direction = direction
297293 self .shop_view = shop_view
298294
@@ -302,7 +298,6 @@ async def callback(self, interaction: discord.Interaction):
302298 self .shop_view .page -= 1
303299 case "next" if self .shop_view .page < len (self .shop_view .pages ) - 1 :
304300 self .shop_view .page += 1
305- # Refresh costs from config so custom prices are always current
306301 self .shop_view .costs = {
307302 name : await self .shop_view .cog .get_item_cost (name )
308303 for name , (_ , data ) in ITEMS .items ()
@@ -372,7 +367,7 @@ def _build_content(self, disabled: bool = False):
372367 if data ["type" ] == item_type and "cost" in data
373368 ]
374369
375- lines = [f"## 🛒 Heist Shop - { section_label } ( { self . page + 1 } / { total } ) \n " ]
370+ lines = [f"## 🛒 Heist Shop - { section_label } \n " ]
376371 for name , emoji , data in items :
377372 cost = self .costs .get (name , data .get ("cost" , 0 ))
378373 line = f"**{ emoji } { fmt (name )} ** - { cost :,} { self .currency_name } \n "
@@ -404,20 +399,22 @@ def _build_content(self, disabled: bool = False):
404399 select = _ShopSelect (self .cog , options )
405400 select .disabled = disabled
406401
407- nav_row = discord .ui .ActionRow ()
408- if self .page > 0 :
409- nav_row .add_item (_ShopNavBtn ("prev" , self , disabled = disabled ))
410- if self .page < len (self .pages ) - 1 :
411- nav_row .add_item (_ShopNavBtn ("next" , self , disabled = disabled ))
402+ nav_row = discord .ui .ActionRow (
403+ _ShopNavBtn ("prev" , self , disabled = disabled or self .page == 0 ),
404+ discord .ui .Button (
405+ label = f"{ self .page + 1 } /{ len (self .pages )} " ,
406+ style = discord .ButtonStyle .secondary ,
407+ disabled = True ,
408+ ),
409+ _ShopNavBtn ("next" , self , disabled = disabled or self .page == len (self .pages ) - 1 ),
410+ )
412411
413412 components : list = [
414413 discord .ui .TextDisplay ("" .join (lines )),
415414 discord .ui .Separator (),
416415 discord .ui .ActionRow (select ),
416+ nav_row ,
417417 ]
418- if nav_row .children :
419- components .append (nav_row )
420-
421418 self .add_item (discord .ui .Container (* components ))
422419
423420 async def interaction_check (self , interaction : discord .Interaction ) -> bool :
0 commit comments