2024-08-26 11:58:45 +02:00
|
|
|
import DismissibleMessage from './DismissibleMessage';
|
2024-08-23 18:11:58 +02:00
|
|
|
|
|
|
|
class AdminMessageHandler {
|
|
|
|
#notices = new Map();
|
|
|
|
|
|
|
|
#config = {};
|
|
|
|
|
|
|
|
constructor( config ) {
|
|
|
|
this.#config = config;
|
|
|
|
this.setupMessages();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Finds all mutable admin messages in the DOM and initializes them.
|
|
|
|
*/
|
|
|
|
setupMessages() {
|
2024-08-26 11:58:45 +02:00
|
|
|
const muteConfig = this.#config?.ajax?.mute_message;
|
|
|
|
const addDismissibleMessage = ( element ) => {
|
|
|
|
try {
|
|
|
|
const message = new DismissibleMessage( element, muteConfig );
|
|
|
|
this.#notices.set( message.id, message );
|
|
|
|
} catch ( ex ) {
|
|
|
|
// Skip invalid elements, continue with next notice.
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2024-08-23 18:11:58 +02:00
|
|
|
document
|
|
|
|
.querySelectorAll( '.notice[data-ppcp-msg-id]' )
|
2024-08-26 11:58:45 +02:00
|
|
|
.forEach( addDismissibleMessage );
|
2024-08-23 18:11:58 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
new AdminMessageHandler( window.wc_admin_notices );
|