From d39ddd0540aa8178635671bfdf8d2a18757b2a5d Mon Sep 17 00:00:00 2001 From: "[dyad]" Date: Mon, 19 Jan 2026 08:11:45 +0100 Subject: [PATCH] [dyad] Adding a presets dropdown to settings - wrote 2 file(s) --- src/components/settings-panel.tsx | 94 +++++++++++---------- src/components/settings/preset-settings.tsx | 67 +++++++++++++++ 2 files changed, 116 insertions(+), 45 deletions(-) create mode 100644 src/components/settings/preset-settings.tsx diff --git a/src/components/settings-panel.tsx b/src/components/settings-panel.tsx index 362ae82..62591e4 100644 --- a/src/components/settings-panel.tsx +++ b/src/components/settings-panel.tsx @@ -5,6 +5,7 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/ import { ImageSettings } from "./settings/image-settings"; import { FilenameSettings } from "./settings/filename-settings"; import { QualitySettings } from "./settings/quality-settings"; +import { PresetSettings } from "./settings/preset-settings"; interface SettingsPanelProps { settings: ConversionSettings; @@ -24,52 +25,55 @@ export function SettingsPanel({ hasImages, }: SettingsPanelProps) { return ( - - - -
-

Bildeinstellungen

-

Auflösung und Skalierung für alle Bilder anpassen.

-
-
- - - -
+
+ + + + +
+

Bildeinstellungen

+

Auflösung und Skalierung für alle Bilder anpassen.

+
+
+ + + +
- - -
-

Dateinameneinstellungen

-

Die Ausgabe-Dateinamen anpassen.

-
-
- - - -
+ + +
+

Dateinameneinstellungen

+

Die Ausgabe-Dateinamen anpassen.

+
+
+ + + +
- - -
-

Qualitätseinstellungen

-

Format und Komprimierungsstufe auswählen.

-
-
- - - -
-
+ + +
+

Qualitätseinstellungen

+

Format und Komprimierungsstufe auswählen.

+
+
+ + + +
+ +
); } \ No newline at end of file diff --git a/src/components/settings/preset-settings.tsx b/src/components/settings/preset-settings.tsx new file mode 100644 index 0000000..cacaca5 --- /dev/null +++ b/src/components/settings/preset-settings.tsx @@ -0,0 +1,67 @@ +"use client"; + +import { ConversionSettings } from "@/types"; +import { Label } from "@/components/ui/label"; +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { toast } from "sonner"; + +type Preset = { + name: string; + settings: Partial; +}; + +const presets: Preset[] = [ + { + name: "Header", + settings: { width: "1920", height: "1080", quality: 100, scaleMode: 'cover', objectPosition: 'center center', aspectRatio: '16/9' }, + }, + { + name: "Normal", + settings: { width: "1000", height: "700", quality: 80, scaleMode: 'cover', objectPosition: 'center center', aspectRatio: 'custom' }, + }, + { + name: "Background", + settings: { width: "1500", height: "1500", quality: 90, scaleMode: 'cover', objectPosition: 'center center', aspectRatio: '1/1' }, + }, +]; + +interface PresetSettingsProps { + onSettingsChange: (settings: Partial) => void; +} + +export function PresetSettings({ onSettingsChange }: PresetSettingsProps) { + const handlePresetSelect = (presetName: string) => { + const selectedPreset = presets.find(p => p.name === presetName); + if (selectedPreset) { + onSettingsChange(selectedPreset.settings); + toast.success(`Preset "${selectedPreset.name}" angewendet.`); + } + }; + + return ( + + + Presets +

Schnell gängige Einstellungen anwenden.

+
+ +
+ + +
+
+
+ ); +} \ No newline at end of file