diff --git a/apps/web/src/components/common/image-viewer.tsx b/apps/web/src/components/common/image-viewer.tsx
index bb2dd4c6..83ffee95 100644
--- a/apps/web/src/components/common/image-viewer.tsx
+++ b/apps/web/src/components/common/image-viewer.tsx
@@ -27,7 +27,7 @@ interface ImageViewerProps {
imageWrapperStyle?: React.CSSProperties;
}
-const ZOOM_STEPS = [25, 50, 75, 100, 125, 150, 200, 300];
+const ZOOM_STEPS = [10, 25, 50, 75, 100, 150, 200, 300, 500, 1000];
const DEFAULT_ZOOM = 100;
export function ImageViewer({
diff --git a/apps/web/src/components/tools/barcode-read-settings.tsx b/apps/web/src/components/tools/barcode-read-settings.tsx
index 9502c24d..589dfb60 100644
--- a/apps/web/src/components/tools/barcode-read-settings.tsx
+++ b/apps/web/src/components/tools/barcode-read-settings.tsx
@@ -72,7 +72,7 @@ function scanOneFile(
formData.append("settings", JSON.stringify({ tryHarder }));
const xhr = new XMLHttpRequest();
- xhr.timeout = 60_000;
+ xhr.timeout = 300_000;
xhr.upload.onprogress = (e) => {
if (e.lengthComputable) onUploadProgress((e.loaded / e.total) * 100);
diff --git a/apps/web/src/components/tools/collage-preview.tsx b/apps/web/src/components/tools/collage-preview.tsx
index 41bfe2bd..084151eb 100644
--- a/apps/web/src/components/tools/collage-preview.tsx
+++ b/apps/web/src/components/tools/collage-preview.tsx
@@ -349,8 +349,8 @@ function CollageCell({
if (first) memo = { panX: transform.panX, panY: transform.panY };
const rect = cellRef.current?.getBoundingClientRect();
if (!rect || !memo) return memo;
- const panX = Math.max(-100, Math.min(100, memo.panX + (mx / rect.width) * 100));
- const panY = Math.max(-100, Math.min(100, memo.panY + (my / rect.height) * 100));
+ const panX = Math.max(-200, Math.min(200, memo.panX + (mx / rect.width) * 100));
+ const panY = Math.max(-200, Math.min(200, memo.panY + (my / rect.height) * 100));
store.setCellTransform(cellIndex, { panX, panY });
return memo;
},
@@ -360,11 +360,11 @@ function CollageCell({
const bindPinch = usePinch(
({ offset: [scale] }) => {
if (!image || !isSelected) return;
- const zoom = Math.max(1, Math.min(3, scale));
+ const zoom = Math.max(1, Math.min(10, scale));
store.setCellTransform(cellIndex, { zoom });
},
{
- scaleBounds: { min: 1, max: 3 },
+ scaleBounds: { min: 1, max: 10 },
from: () => [transform.zoom, 0],
},
);
@@ -378,7 +378,7 @@ function CollageCell({
const handleWheel = (e: WheelEvent) => {
e.preventDefault();
const delta = e.deltaY > 0 ? -0.1 : 0.1;
- const zoom = Math.max(1, Math.min(3, zoomRef.current + delta));
+ const zoom = Math.max(1, Math.min(10, zoomRef.current + delta));
store.setCellTransform(cellIndex, { zoom });
};
el.addEventListener("wheel", handleWheel, { passive: false });
@@ -555,7 +555,7 @@ function CollageCell({
{
if (event.lengthComputable) {
diff --git a/apps/web/src/components/tools/image-to-pdf-settings.tsx b/apps/web/src/components/tools/image-to-pdf-settings.tsx
index 82c4842b..0df9391d 100644
--- a/apps/web/src/components/tools/image-to-pdf-settings.tsx
+++ b/apps/web/src/components/tools/image-to-pdf-settings.tsx
@@ -167,7 +167,7 @@ export function ImageToPdfSettings() {
const xhr = new XMLHttpRequest();
xhrRef.current = xhr;
- xhr.timeout = 180_000;
+ xhr.timeout = 300_000;
xhr.upload.onprogress = (event) => {
if (event.lengthComputable) {
diff --git a/apps/web/src/components/tools/passport-photo-settings.tsx b/apps/web/src/components/tools/passport-photo-settings.tsx
index 9159e560..be79d456 100644
--- a/apps/web/src/components/tools/passport-photo-settings.tsx
+++ b/apps/web/src/components/tools/passport-photo-settings.tsx
@@ -1062,8 +1062,8 @@ export function PassportPhotoPreview() {
if (!dragStartRef.current) return;
const dx = (e.clientX - dragStartRef.current.x) * 0.001;
const dy = (e.clientY - dragStartRef.current.y) * 0.001;
- setAdjustX(Math.max(-0.15, Math.min(0.15, dragStartRef.current.ax - dx)));
- setAdjustY(Math.max(-0.15, Math.min(0.15, dragStartRef.current.ay - dy)));
+ setAdjustX(Math.max(-0.3, Math.min(0.3, dragStartRef.current.ax - dx)));
+ setAdjustY(Math.max(-0.3, Math.min(0.3, dragStartRef.current.ay - dy)));
}
function handleMouseUp() {
@@ -1083,7 +1083,7 @@ export function PassportPhotoPreview() {
const handleWheel = useCallback(
(e: React.WheelEvent) => {
e.preventDefault();
- setZoom(Math.max(0.5, Math.min(3, zoom + (e.deltaY > 0 ? -0.1 : 0.1))));
+ setZoom(Math.max(0.5, Math.min(5, zoom + (e.deltaY > 0 ? -0.1 : 0.1))));
},
[zoom, setZoom],
);
@@ -1138,7 +1138,7 @@ export function PassportPhotoPreview() {