From ed032d247a9feaef997af87f6cafc477c6bea9d5 Mon Sep 17 00:00:00 2001 From: "[dyad]" Date: Mon, 19 Jan 2026 10:36:38 +0100 Subject: [PATCH] [dyad] Einstellungen bei Preset-Nutzung gesperrt - wrote 5 file(s) --- src/components/object-position-control.tsx | 9 +++++++-- src/components/settings-panel.tsx | 20 ++++++++++++++++---- src/components/settings/image-settings.tsx | 19 +++++++++++-------- src/components/settings/preset-settings.tsx | 11 +++++------ src/components/settings/quality-settings.tsx | 7 ++++--- 5 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/components/object-position-control.tsx b/src/components/object-position-control.tsx index d67cee1..05f7acc 100644 --- a/src/components/object-position-control.tsx +++ b/src/components/object-position-control.tsx @@ -22,11 +22,15 @@ const positions: Position[] = [ interface ObjectPositionControlProps { value: string; onChange: (value: Position) => void; + disabled?: boolean; } -export function ObjectPositionControl({ value, onChange }: ObjectPositionControlProps) { +export function ObjectPositionControl({ value, onChange, disabled = false }: ObjectPositionControlProps) { return ( -
+
{positions.map((pos) => ( @@ -77,12 +80,12 @@ export function ImageSettings({

Legen Sie die Ausgabehöhe in Pixeln fest. Leer lassen, um die Originalhöhe zu verwenden.

- { onSettingsChange({ height: e.target.value, aspectRatio: 'custom' }) }} /> + { onSettingsChange({ height: e.target.value, aspectRatio: 'custom' }) }} disabled={disabled} />
- onSettingsChange({ keepOrientation: Boolean(checked) })} /> -
- onSettingsChange({ scaleMode: value as any })} disabled={disabled}> Füllen (strecken) @@ -116,7 +119,7 @@ export function ImageSettings({

Legt den Ankerpunkt für die Skalierung 'Abdecken' oder 'Enthalten' fest.

- onSettingsChange({ objectPosition: pos as ObjectPosition })} /> + onSettingsChange({ objectPosition: pos as ObjectPosition })} disabled={disabled} /> )} diff --git a/src/components/settings/preset-settings.tsx b/src/components/settings/preset-settings.tsx index 56ac45d..71200dc 100644 --- a/src/components/settings/preset-settings.tsx +++ b/src/components/settings/preset-settings.tsx @@ -1,6 +1,5 @@ "use client"; -import { useState } from "react"; import { ConversionSettings } from "@/types"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; @@ -30,11 +29,11 @@ const presets: Preset[] = [ interface PresetSettingsProps { onSettingsChange: (settings: Partial) => void; + enabled: boolean; + onEnabledChange: (enabled: boolean) => void; } -export function PresetSettings({ onSettingsChange }: PresetSettingsProps) { - const [presetsEnabled, setPresetsEnabled] = useState(false); - +export function PresetSettings({ onSettingsChange, enabled, onEnabledChange }: PresetSettingsProps) { const handlePresetSelect = (presetName: string) => { const selectedPreset = presets.find(p => p.name === presetName); if (selectedPreset) { @@ -51,10 +50,10 @@ export function PresetSettings({ onSettingsChange }: PresetSettingsProps) { Presets

Schnell gängige Einstellungen anwenden.

- + - {presetsEnabled && ( + {enabled && (
diff --git a/src/components/settings/quality-settings.tsx b/src/components/settings/quality-settings.tsx index 2a3a0e4..0f4a6e7 100644 --- a/src/components/settings/quality-settings.tsx +++ b/src/components/settings/quality-settings.tsx @@ -10,9 +10,10 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip interface QualitySettingsProps { settings: ConversionSettings; onSettingsChange: (settings: Partial) => void; + disabled?: boolean; } -export function QualitySettings({ settings, onSettingsChange }: QualitySettingsProps) { +export function QualitySettings({ settings, onSettingsChange, disabled = false }: QualitySettingsProps) { return (
@@ -23,7 +24,7 @@ export function QualitySettings({ settings, onSettingsChange }: QualitySettingsP

Wählen Sie das Ausgabedateiformat für die Bilder.

- onSettingsChange({ format: value })} disabled={disabled}> PNG @@ -50,7 +51,7 @@ export function QualitySettings({ settings, onSettingsChange }: QualitySettingsP step={1} value={[settings.quality]} onValueChange={(value) => onSettingsChange({ quality: value[0] })} - disabled={settings.format === 'png'} + disabled={disabled || settings.format === 'png'} /> {settings.format === 'png' && (

Der Qualitätsregler ist für PNG (verlustfreies Format) deaktiviert.