mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix: QA sweep -- SSE crash, memory leaks, HEIC Docker decode, TGA detection, lint cleanup
- Fix SSE write-after-end crash in progress.ts (remove callback before ending stream) - Fix blob URL memory leaks: revoke processedPreviewUrl and old HEIC preview URLs - Add AbortController to batch fetch in use-tool-processor and use-pipeline-processor - Fix TGA format misidentified as CUR (extension overrides magic bytes) - Add libheif-plugin-libde265 to Docker for HEIC/HEIF decode support - Remove unused imports and state (AppLayout, setSampledColor, useEffect) - Fix non-null assertions in meme-text-renderer and meme-generator - Fix confusing void type in meme-templates - Remove unnecessary useEffect deps in adjustments-panel - Fix Playwright strict mode violations in 5 E2E tests
This commit is contained in:
@@ -75,7 +75,6 @@ export function EditorOptionsBar() {
|
||||
|
||||
// Eyedropper state (managed here since EyedropperOptions requires props)
|
||||
const [eyedropperSampleSize, setEyedropperSampleSize] = useState<SampleSize>(1);
|
||||
const [sampledColor, setSampledColor] = useState<string | null>(null);
|
||||
|
||||
// Transform tool API (managed here since TransformOptions requires props)
|
||||
const transformApi = useTransformTool();
|
||||
@@ -98,7 +97,7 @@ export function EditorOptionsBar() {
|
||||
<EyedropperOptions
|
||||
sampleSize={eyedropperSampleSize}
|
||||
onSampleSizeChange={setEyedropperSampleSize}
|
||||
sampledColor={sampledColor ?? foregroundColor}
|
||||
sampledColor={foregroundColor}
|
||||
/>
|
||||
)}
|
||||
{activeTool === "transform" && <TransformOptions api={transformApi} />}
|
||||
|
||||
@@ -1062,10 +1062,9 @@ export function AdjustmentsPanel() {
|
||||
}
|
||||
}
|
||||
|
||||
// Capture on mount and when adjustments/filters change
|
||||
const timer = setTimeout(captureImageData, 100);
|
||||
return () => clearTimeout(timer);
|
||||
}, [adjustments, filters, canvasSize]);
|
||||
}, [canvasSize]);
|
||||
|
||||
const hasChanges = useMemo(() => {
|
||||
const hasAdjustmentChanges = Object.values(adjustments).some((v) => v !== 0);
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
Workflow,
|
||||
X,
|
||||
} from "lucide-react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useState } from "react";
|
||||
import { Link } from "react-router-dom";
|
||||
import { useMobile } from "@/hooks/use-mobile";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
Reference in New Issue
Block a user