Offer a compare-with-original split, and drop the render-time readout

This commit is contained in:
2026-09-17 21:39:07 +07:00
parent 99be7e96bd
commit 3af5a315e2
5 changed files with 134 additions and 11 deletions
+2 -4
View File
@@ -132,7 +132,6 @@ export function Workspace() {
const [source, setSource] = useState<LoadedSource | null>(null);
const [previewBytes, setPreviewBytes] = useState<Uint8Array | null>(null);
const [previewUrl, setPreviewUrl] = useState<string | null>(null);
const [rendered, setRendered] = useState<{ w: number; h: number; ms: number } | null>(null);
const [recipe, setRecipe] = useState<Recipe>(() => ({
...DEFAULT_RECIPES[0],
@@ -316,7 +315,6 @@ export function Workspace() {
const token = ++renderToken.current;
const timer = setTimeout(async () => {
setBusy(t('act.exporting'));
const started = performance.now();
try {
const out = await renderPhoto({
source: previewBytes,
@@ -342,7 +340,6 @@ export function Workspace() {
if (prev) URL.revokeObjectURL(prev);
return url;
});
setRendered({ w: out.width, h: out.height, ms: Math.round(performance.now() - started) });
} catch (err) {
if (token === renderToken.current) setError(t('err.generic', { msg: String(err) }));
} finally {
@@ -1045,7 +1042,7 @@ export function Workspace() {
})),
];
const status = busy ? busy : rendered ? t('meta.rendered', { ms: rendered.ms, w: rendered.w, h: rendered.h }) : t('meta.ready');
const status = busy;
return (
<div className="shell">
@@ -1172,6 +1169,7 @@ export function Workspace() {
cropWH={cropWH}
onCropRectChange={setCropRect}
onStageZoom={onStageZoom}
canCompare={crop === 'none'}
/>
</div>