refactor: Modularize UI components and utilities
- Extract UI components into separate JS files - Centralize configuration values in config.js - Introduce a dedicated logger module - Improve file tree drag-and-drop and undo functionality - Refactor modal handling to a single manager - Add URL routing support for SPA navigation - Implement view mode for read-only access
This commit is contained in:
77
static/js/notification-service.js
Normal file
77
static/js/notification-service.js
Normal file
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Notification Service
|
||||
* Provides a standardized way to show toast notifications
|
||||
* Wraps the showNotification function from ui-utils.js
|
||||
*/
|
||||
|
||||
class NotificationService {
|
||||
/**
|
||||
* Show a success notification
|
||||
* @param {string} message - The message to display
|
||||
*/
|
||||
static success(message) {
|
||||
if (window.showNotification) {
|
||||
window.showNotification(message, Config.NOTIFICATION_TYPES.SUCCESS);
|
||||
} else {
|
||||
Logger.warn('showNotification not available, falling back to console');
|
||||
console.log(`✅ ${message}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show an error notification
|
||||
* @param {string} message - The message to display
|
||||
*/
|
||||
static error(message) {
|
||||
if (window.showNotification) {
|
||||
window.showNotification(message, Config.NOTIFICATION_TYPES.ERROR);
|
||||
} else {
|
||||
Logger.warn('showNotification not available, falling back to console');
|
||||
console.error(`❌ ${message}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a warning notification
|
||||
* @param {string} message - The message to display
|
||||
*/
|
||||
static warning(message) {
|
||||
if (window.showNotification) {
|
||||
window.showNotification(message, Config.NOTIFICATION_TYPES.WARNING);
|
||||
} else {
|
||||
Logger.warn('showNotification not available, falling back to console');
|
||||
console.warn(`⚠️ ${message}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show an info notification
|
||||
* @param {string} message - The message to display
|
||||
*/
|
||||
static info(message) {
|
||||
if (window.showNotification) {
|
||||
window.showNotification(message, Config.NOTIFICATION_TYPES.INFO);
|
||||
} else {
|
||||
Logger.warn('showNotification not available, falling back to console');
|
||||
console.info(`ℹ️ ${message}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show a notification with a custom type
|
||||
* @param {string} message - The message to display
|
||||
* @param {string} type - The notification type (success, danger, warning, primary, etc.)
|
||||
*/
|
||||
static show(message, type = 'primary') {
|
||||
if (window.showNotification) {
|
||||
window.showNotification(message, type);
|
||||
} else {
|
||||
Logger.warn('showNotification not available, falling back to console');
|
||||
console.log(`[${type.toUpperCase()}] ${message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Make NotificationService globally available
|
||||
window.NotificationService = NotificationService;
|
||||
|
||||
Reference in New Issue
Block a user