You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
refactor: „Zeichnung in Box einpassen“-Logik ist 4× kopiert #359
Unterschiede gibt es nur beim Padding: 10 bei den Canvases, 40 beim Share-Export. Jede Korrektur an Padding, Bounds oder Randfällen muss deshalb viermal gemacht werden. Die Varianten unterscheiden sich schon jetzt leicht: Wenn alle Pfade Fills sind, landet die Web-Version über NaN im Fallback scale = 1.
Eng verwandt: Web- und Native-Canvas deklarieren dieselben Props mit denselben Defaults (height = 400, strokeColor = '#000000', strokeWidth = 3, tool = 'brush') sowie dieselbe Breitenregel windowWidth - 48 jeweils selbst. Ein neuer Prop in nur einer der beiden Dateien fällt deshalb nicht auf.
Vorschlag
computeScaleOffset(paths, width, height, padding) in components/DrawingCanvas.shared.ts (oder einem kleinen services/-Helper) anlegen und in allen vier Dateien verwenden. Randfälle (nur Fills, Breite oder Höhe 0) einheitlich mit { scale: 1, offsetX: 0, offsetY: 0 } behandeln.
Optional: DrawingCanvasProps, die Defaults und resolveCanvasWidth() ebenfalls nach DrawingCanvas.shared.ts verschieben.
Unit-Tests für den Helper schreiben (normal, nur Fills, Einzelpunkt, große Zeichnung).
Kontext
Gefunden im Simplify-Audit (#356). Dort ausgelassen, weil vier Dateien betroffen sind und das Verhalten an den Randfällen leicht abweicht.
Activity