Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
61
resources/js/modules/scroll-dependent/index.js
Normal file
61
resources/js/modules/scroll-dependent/index.js
Normal file
@@ -0,0 +1,61 @@
|
||||
// modules/scroll-dependent/index.js
|
||||
import { Logger } from '../../core/logger.js';
|
||||
import { DependencyManager } from '../../core/DependencyManager.js';
|
||||
|
||||
// Module definition with explicit dependencies
|
||||
export const definition = DependencyManager.createDefinition('scroll-dependent', '1.0.0')
|
||||
.depends('example-module', '1.0.0') // Required dependency
|
||||
.depends('scrollfx', '1.0.0', true) // Optional dependency
|
||||
.provides('scroll-coordination')
|
||||
.priority(10); // Lower priority = later initialization
|
||||
|
||||
let scrollSubscription = null;
|
||||
let state = null;
|
||||
|
||||
/**
|
||||
* Initialize scroll-dependent module
|
||||
* @param {Object} config - Module configuration
|
||||
* @param {Object} stateManager - Scoped state manager
|
||||
*/
|
||||
export function init(config = {}, stateManager = null) {
|
||||
Logger.info('[scroll-dependent] init');
|
||||
state = stateManager;
|
||||
|
||||
// Register own state
|
||||
if (state) {
|
||||
state.register('isScrolling', false);
|
||||
state.register('scrollDirection', 'none');
|
||||
|
||||
// Subscribe to dependency state
|
||||
scrollSubscription = state.subscribe('example-module.scrollPosition', (newPos, oldPos) => {
|
||||
if (oldPos.y !== newPos.y) {
|
||||
const direction = newPos.y > oldPos.y ? 'down' : 'up';
|
||||
state.set('scrollDirection', direction);
|
||||
state.set('isScrolling', true);
|
||||
|
||||
// Reset scrolling state after delay
|
||||
setTimeout(() => {
|
||||
if (state) {
|
||||
state.set('isScrolling', false);
|
||||
}
|
||||
}, 150);
|
||||
|
||||
Logger.info(`[scroll-dependent] Scroll ${direction}: ${newPos.y}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function destroy() {
|
||||
Logger.info('[scroll-dependent] destroy');
|
||||
|
||||
if (scrollSubscription && state) {
|
||||
state.unsubscribe(scrollSubscription);
|
||||
scrollSubscription = null;
|
||||
}
|
||||
|
||||
if (state && typeof state.cleanup === 'function') {
|
||||
state.cleanup();
|
||||
}
|
||||
state = null;
|
||||
}
|
||||
Reference in New Issue
Block a user