[dyad] Improved filename generation logic - wrote 1 file(s)

This commit is contained in:
[dyad]
2026-01-18 11:20:25 +01:00
parent 59553f6ce0
commit b87410a7e5

View File

@@ -44,6 +44,7 @@ export function ImageConverter() {
const [useCounter, setUseCounter] = useState<boolean>(false); const [useCounter, setUseCounter] = useState<boolean>(false);
const [counterStart, setCounterStart] = useState<number>(1); const [counterStart, setCounterStart] = useState<number>(1);
const [counterDigits, setCounterDigits] = useState<number>(3); const [counterDigits, setCounterDigits] = useState<number>(3);
const [counterSuffix, setCounterSuffix] = useState<string>("");
const [isConverting, setIsConverting] = useState(false); const [isConverting, setIsConverting] = useState(false);
const [isDraggingOver, setIsDraggingOver] = useState(false); const [isDraggingOver, setIsDraggingOver] = useState(false);
@@ -133,12 +134,15 @@ export function ImageConverter() {
}; };
const generateFinalFilename = (index: number) => { const generateFinalFilename = (index: number) => {
const baseName = filenames[index] || "filename";
let finalName = `${prefix}${baseName}${suffix}`;
if (useCounter) { if (useCounter) {
const counter = (index + counterStart).toString().padStart(counterDigits, '0'); const counter = (index + counterStart).toString().padStart(counterDigits, '0');
return `${prefix}${counter}${suffix}`; finalName += `${counter}${counterSuffix}`;
} }
const baseName = filenames[index] || "filename";
return `${prefix}${baseName}${suffix}`; return finalName;
}; };
const handleConvertAndDownload = async () => { const handleConvertAndDownload = async () => {
@@ -272,7 +276,8 @@ export function ImageConverter() {
<Label htmlFor="use-counter">Add sequential number</Label> <Label htmlFor="use-counter">Add sequential number</Label>
</div> </div>
{useCounter && ( {useCounter && (
<div className="grid grid-cols-2 gap-4 pt-2"> <div className="space-y-4 pt-2">
<div className="grid grid-cols-2 gap-4">
<div className="space-y-2"> <div className="space-y-2">
<Label htmlFor="counter-start">Start number</Label> <Label htmlFor="counter-start">Start number</Label>
<Input <Input
@@ -294,6 +299,16 @@ export function ImageConverter() {
/> />
</div> </div>
</div> </div>
<div className="space-y-2">
<Label htmlFor="counter-suffix">Counter Suffix</Label>
<Input
id="counter-suffix"
placeholder="e.g., _final"
value={counterSuffix}
onChange={(e) => setCounterSuffix(e.target.value)}
/>
</div>
</div>
)} )}
</div> </div>
</AccordionContent> </AccordionContent>
@@ -341,7 +356,6 @@ export function ImageConverter() {
id={`filename-${index}`} id={`filename-${index}`}
value={filenames[index]} value={filenames[index]}
onChange={(e) => handleFilenameChange(index, e.target.value)} onChange={(e) => handleFilenameChange(index, e.target.value)}
disabled={useCounter}
className="text-sm font-medium h-8 mt-1" className="text-sm font-medium h-8 mt-1"
/> />
<p className="text-xs text-muted-foreground truncate mt-1" title={`${generateFinalFilename(index)}_${width || 'w'}x${height || 'h'}.${format}`}> <p className="text-xs text-muted-foreground truncate mt-1" title={`${generateFinalFilename(index)}_${width || 'w'}x${height || 'h'}.${format}`}>