kinetic-slider
Version:
A WebGL-powered kinetic slider component using PIXI.js
31 lines (30 loc) • 1.2 kB
TypeScript
import { type RefObject } from 'react';
import { DisplacementFilter } from 'pixi.js';
import ResourceManager from '../managers/ResourceManager';
interface UseIdleTimerProps {
sliderRef: RefObject<HTMLDivElement | null>;
cursorActive: RefObject<boolean>;
bgDispFilterRef: RefObject<DisplacementFilter | null>;
cursorDispFilterRef: RefObject<DisplacementFilter | null>;
cursorImgEffect: boolean;
defaultBgFilterScale: number;
defaultCursorFilterScale: number;
idleTimeout?: number;
resourceManager?: ResourceManager | null;
}
/**
* Hook to manage idle timer for resetting displacement effects
* Fully optimized with:
* - Batch resource management
* - Efficient timer handling
* - Comprehensive error handling
* - Memory leak prevention
* - Optimized animation management
* - Cancellation mechanisms
* - Animation coordination
*/
declare const useIdleTimer: ({ sliderRef, cursorActive, bgDispFilterRef, cursorDispFilterRef, cursorImgEffect, defaultBgFilterScale, defaultCursorFilterScale, idleTimeout, resourceManager }: UseIdleTimerProps) => {
resetFilters: () => void;
restoreFilters: (immediate?: boolean) => void;
};
export default useIdleTimer;