@@ -336,6 +336,8 @@ def add_item(self, item: Item) -> None:
336336 self .__weights .add_item (item )
337337
338338 item ._view = self
339+ if hasattr (item , "items" ):
340+ item .view = self
339341 self .children .append (item )
340342
341343 def remove_item (self , item : Item ) -> None :
@@ -647,6 +649,16 @@ def add_view(self, view: View, message_id: int | None = None):
647649 for item in view .children :
648650 if item .is_dispatchable ():
649651 self ._views [(item .type .value , message_id , item .custom_id )] = (view , item ) # type: ignore
652+ elif hasattr (item , "items" ):
653+ for sub_item in item .items :
654+ if sub_item .is_dispatchable ():
655+ self ._views [(sub_item .type .value , message_id , sub_item .custom_id )] = (view , sub_item )
656+ elif hasattr (item , "accessory" ):
657+ if sub_item .accessory .is_dispatchable ():
658+ self ._views [(sub_item .accessory .type .value , message_id , sub_item .accessory .custom_id )] = (view , sub_item .accessory )
659+ elif hasattr (item , "accessory" ):
660+ if item .accessory .is_dispatchable ():
661+ self ._views [(item .accessory .type .value , message_id , item .accessory .custom_id )] = (view , item .accessory )
650662
651663 if message_id is not None :
652664 self ._synced_message_views [message_id ] = view
0 commit comments