@hadyfayed/filament-react-wrapper
Version:
Enterprise React integration for Laravel/Filament - Smart asset loading, 90%+ React-PHP function mapping, no-plugin Filament integration
84 lines • 2.15 kB
TypeScript
export interface StatePersistenceConfig {
key: string;
storage?: "localStorage" | "sessionStorage" | "none";
syncWithLivewire?: boolean;
livewirePath?: string;
debounceMs?: number;
transformer?: {
serialize?: (data: unknown) => unknown;
deserialize?: (data: unknown) => unknown;
};
}
export declare class StatePersistenceService {
private configs;
private debounceTimeouts;
private lastValues;
private maxMapSize;
/**
* Register a state path for persistence
*/
register(config: StatePersistenceConfig): void;
/**
* Save state value with persistence and sync
*/
save(key: string, value: unknown): Promise<void>;
/**
* Load state value from storage
*/
load(key: string): Promise<unknown>;
/**
* Clear all timeouts and perform immediate sync
*/
flush(): void;
/**
* Unregister a state path
*/
unregister(key: string): void;
/**
* Get all registered keys
*/
getRegisteredKeys(): string[];
/**
* Remove stored data for a key (alias for clear)
*/
remove(key: string): Promise<void>;
/**
* Clear all stored data
*/
clear(): Promise<void>;
/**
* Clear stored data for a specific key
*/
private clearSync;
/**
* Perform the actual save operation
*/
private performSave;
/**
* Save to browser storage
*/
private saveToStorage;
/**
* Load from browser storage
*/
private loadFromStorage;
/**
* Sync with Livewire component
*/
private syncWithLivewire;
/**
* Deep equality check
*/
private deepEqual;
/**
* Deep clone object
*/
private deepClone;
/**
* Clean up old entries to prevent memory leaks
*/
private cleanupOldEntries;
}
export declare const statePersistenceService: StatePersistenceService;
export declare function usePersistedState<T>(key: string, defaultValue: T, config?: Partial<StatePersistenceConfig>): [T, (value: T | ((prev: T) => T)) => void];
//# sourceMappingURL=StatePersistenceService.d.ts.map