@@ -147,11 +147,12 @@ async def interaction_check(self, interaction: discord.Interaction) -> bool:
147147 return True
148148
149149 async def on_timeout (self ) -> None :
150+ print ("GuildSubscriptionDeleteQuestionView timeout" )
150151 await self .original_interaction .edit_original_response (
151152 content = self .parent .message_content , view = self .parent
152153 )
153154
154- @discord .ui .button (label = "Delete" )
155+ @discord .ui .button (label = "Delete" , style = discord . ButtonStyle . danger )
155156 async def delete_button (
156157 self ,
157158 interaction : discord .Interaction ,
@@ -209,6 +210,7 @@ async def send(self) -> None:
209210 self .message = await self .ctx .send (self .message_content , view = self )
210211
211212 async def on_timeout (self ) -> None :
213+ print ("GuildSubscriptionView timeout" )
212214 if self .message is None :
213215 return
214216 await self .message .edit (content = "This message's view has expired." , view = None )
@@ -309,27 +311,35 @@ async def player_select(
309311 select : discord .ui .Select [GuildSubscriptionView ],
310312 ) -> None :
311313 raw_platform , player_id = select .values [0 ].split ("_" , maxsplit = 1 )
312- confirm_view = GuildSubscriptionDeleteQuestionView (
313- parent = self ,
314- original_interaction = interaction ,
315- author = self .ctx .author ,
316- )
317- await interaction .response .edit_message (view = confirm_view )
318- await confirm_view .wait ()
319- if not confirm_view .delete_interaction :
320- return
321-
322314 for idx , option in enumerate (self .player_select .options ):
323315 if option .value == select .values [0 ]:
324316 deleted_option = self .player_select .options .pop (idx )
325317 break
326318 else :
327- await confirm_view . delete_interaction .response .edit_message (
319+ await interaction .response .edit_message (
328320 content = (
329321 "Unexpected error occurred"
330322 " and the selected player could not be deleted."
331323 ),
324+ view = None ,
332325 )
326+ return
327+
328+ confirm_view = GuildSubscriptionDeleteQuestionView (
329+ parent = self ,
330+ original_interaction = interaction ,
331+ author = self .ctx .author ,
332+ )
333+ await interaction .response .edit_message (
334+ content = (
335+ "Are you sure that you want to unsubscribe to updates for"
336+ f" { deleted_option .label } ({ deleted_option .description } )?"
337+ ),
338+ view = confirm_view ,
339+ )
340+ await confirm_view .wait ()
341+ if not confirm_view .delete_interaction :
342+ return
333343 await confirm_view .delete_interaction .response .edit_message (
334344 content = self .message_content , view = self
335345 )
0 commit comments