1- import Data from "../../modules/data.js"
1+ import { registerBootstrapBlazorModule } from "../../modules/utility.js"
2+ import Data from "../../modules/data.js"
23import EventHandler from "../../modules/event-handler.js"
34
45export function init ( id ) {
@@ -23,11 +24,19 @@ export function init(id) {
2324 list . classList . remove ( 'show' )
2425 } )
2526
26- if ( ! window . bb_slide_button ) {
27- window . bb_slide_button = true
27+ const module = registerBootstrapBlazorModule ( 'SlideButton' , {
28+ handle : false ,
29+ items : [ ] ,
30+ registerClosePopupHandler : function ( ) {
31+ if ( this . handle === false ) {
32+ this . handle = true ;
2833
29- EventHandler . on ( document , 'click' , e => closePopup ( e ) ) ;
30- }
34+ EventHandler . on ( document , 'click' , closePopup ) ;
35+ }
36+ }
37+ } ) ;
38+ module . registerClosePopupHandler ( ) ;
39+ module . items . push ( id ) ;
3140}
3241
3342export function update ( id ) {
@@ -42,10 +51,17 @@ export function dispose(id) {
4251 Data . remove ( id )
4352
4453 if ( slide ) {
45- EventHandler . off ( slide . button , 'click' )
46- EventHandler . off ( slide . list , 'click' , '.btn-close' )
47- EventHandler . off ( slide . list , 'click' , '.slide-item' )
54+ const { button, list } = slide ?? { } ;
55+ EventHandler . off ( button , 'click' ) ;
56+ EventHandler . off ( list , 'click' ) ;
4857 }
58+
59+ const { SlideButton } = window . BootstrapBlazor ;
60+ SlideButton . items . pop ( id )
61+ if ( SlideButton . items . length === 0 ) {
62+ EventHandler . off ( document , 'click' , closePopup )
63+ }
64+
4965}
5066
5167const reset = slide => {
0 commit comments