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.