mirror of
https://github.com/jhbruhn/respira.git
synced 2026-01-27 02:13:41 +00:00
Store both original unrotated pesData and uploaded rotated pesData in cache to ensure exact consistency on resume and prevent issues from algorithm changes between versions. This fixes rotation/position reset issues after page reload. - Cache original unrotated pattern + rotation angle for editing - Cache exact uploaded pattern data sent to machine - Restore original offset after loading cached pattern - Use cached uploaded data on resume instead of recalculating 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
52 lines
1.4 KiB
TypeScript
52 lines
1.4 KiB
TypeScript
import { PatternCacheService } from "../../services/PatternCacheService";
|
|
import type {
|
|
IStorageService,
|
|
ICachedPattern,
|
|
} from "../interfaces/IStorageService";
|
|
import type { PesPatternData } from "../../formats/import/pesImporter";
|
|
|
|
/**
|
|
* Browser implementation of storage service using localStorage
|
|
* Wraps the existing PatternCacheService
|
|
*/
|
|
export class BrowserStorageService implements IStorageService {
|
|
async savePattern(
|
|
uuid: string,
|
|
pesData: PesPatternData,
|
|
fileName: string,
|
|
patternOffset?: { x: number; y: number },
|
|
patternRotation?: number,
|
|
uploadedPesData?: PesPatternData,
|
|
): Promise<void> {
|
|
PatternCacheService.savePattern(uuid, pesData, fileName, patternOffset, patternRotation, uploadedPesData);
|
|
}
|
|
|
|
async getPatternByUUID(uuid: string): Promise<ICachedPattern | null> {
|
|
return PatternCacheService.getPatternByUUID(uuid);
|
|
}
|
|
|
|
async getMostRecentPattern(): Promise<ICachedPattern | null> {
|
|
return PatternCacheService.getMostRecentPattern();
|
|
}
|
|
|
|
async hasPattern(uuid: string): Promise<boolean> {
|
|
return PatternCacheService.hasPattern(uuid);
|
|
}
|
|
|
|
async deletePattern(uuid: string): Promise<void> {
|
|
PatternCacheService.deletePattern(uuid);
|
|
}
|
|
|
|
async clearCache(): Promise<void> {
|
|
PatternCacheService.clearCache();
|
|
}
|
|
|
|
async getCacheInfo(): Promise<{
|
|
hasCache: boolean;
|
|
fileName?: string;
|
|
uuid?: string;
|
|
age?: number;
|
|
}> {
|
|
return PatternCacheService.getCacheInfo();
|
|
}
|
|
}
|