@@ -6,6 +6,7 @@ import events from "../../core/events";
6
6
import logging from "../../core/logging" ;
7
7
import Parser from "../../core/parser" ;
8
8
import registry from "../../core/registry" ;
9
+ import create_uuid from "../../core/uuid" ;
9
10
import utils from "../../core/utils" ;
10
11
11
12
const log = logging . getLogger ( "pat.inject" ) ;
@@ -136,26 +137,28 @@ const inject = {
136
137
if ( ! cfgs [ 0 ] . delay ) {
137
138
this . onTrigger ( { currentTarget : el } ) ;
138
139
} else {
139
- // generate UID
140
- const uid = Math . random ( ) . toString ( 36 ) ;
141
- el . setAttribute ( "data-pat-inject-uid " , uid ) ;
140
+ // generate UUID
141
+ const uuid = create_uuid ( ) ;
142
+ el . setAttribute ( "data-pat-inject-uuid " , uuid ) ;
142
143
143
144
// function to trigger the autoload and mark as triggered
144
- const delayed_trigger = ( uid_ ) => {
145
+ const delayed_trigger = ( uuid_ ) => {
145
146
// Check if the element has been removed from the dom
146
147
const still_there = document . querySelector (
147
- `[data-pat-inject-uid ="${ uid_ } "]`
148
+ `[data-pat-inject-uuid ="${ uuid_ } "]`
148
149
) ;
149
150
if ( ! still_there ) {
150
151
return false ;
151
152
}
152
153
153
154
$el . data ( "pat-inject-autoloaded" , true ) ;
154
155
this . onTrigger ( { currentTarget : el } ) ;
156
+ // Cleanup again.
157
+ still_there . removeAttribute ( "data-pat-inject-uuid" ) ;
155
158
return true ;
156
159
} ;
157
160
window . setTimeout (
158
- delayed_trigger . bind ( null , uid ) ,
161
+ delayed_trigger . bind ( null , uuid ) ,
159
162
cfgs [ 0 ] . delay
160
163
) ;
161
164
}
0 commit comments