diff --git a/src/components/EditPanel.tsx b/src/components/EditPanel.tsx
index 2eef0cf..acd40ad 100644
--- a/src/components/EditPanel.tsx
+++ b/src/components/EditPanel.tsx
@@ -13,6 +13,96 @@ interface EditPanelProps {
onCaptureState: (message: string) => void;
}
+interface DimensionInputProps {
+ label: string;
+ field: string;
+ value: string;
+ isModified: boolean;
+ onChange: (val: string) => void;
+ placeholder?: string;
+}
+
+const DimensionInput = ({ label, value, isModified, onChange, placeholder }: DimensionInputProps) => (
+
+
+ onChange(e.target.value)}
+ placeholder={placeholder}
+ className={cn(
+ "w-full bg-slate-900 border rounded p-2 text-sm text-white focus:outline-none focus:ring-1 transition-colors",
+ isModified ? "border-blue-500 focus:ring-blue-500" : "border-slate-700 focus:border-slate-500"
+ )}
+ />
+
+);
+
+interface FieldEditorProps {
+ title: string;
+ field: string;
+ value: string;
+ isModified: boolean;
+ canTranslate: boolean;
+ isGenerated: boolean;
+ isLoading: boolean;
+ onGenerate: () => void;
+ onChange: (val: string) => void;
+ onKeyDown: (e: React.KeyboardEvent) => void;
+}
+
+const FieldEditor = ({
+ title,
+ field,
+ value,
+ isModified,
+ canTranslate,
+ isGenerated,
+ isLoading,
+ onGenerate,
+ onChange,
+ onKeyDown
+}: FieldEditorProps) => (
+
+
+
+
+ {canTranslate && (
+
+
+ Can translate from existing
+
+ )}
+
+
+ {isGenerated && (
+
+
+ AI Generated - You can still edit manually
+
+ )}
+
+
+);
+
export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: EditPanelProps) {
const [formData, setFormData] = useState({
longDe: row[COLUMNS.LONG_DE] || '',
@@ -163,70 +253,10 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
onSave(rowIndex, newRow);
};
- const DimensionInput = ({ label, field, placeholder }: { label: string, field: keyof typeof formData, placeholder?: string }) => (
-
-
- setFormData(prev => ({ ...prev, [field]: e.target.value }))}
- placeholder={placeholder}
- className={cn(
- "w-full bg-slate-900 border rounded p-2 text-sm text-white focus:outline-none focus:ring-1 transition-colors",
- isModified(field) ? "border-blue-500 focus:ring-blue-500" : "border-slate-700 focus:border-slate-500"
- )}
- />
-
- );
-
const handleInputKeyDown = (e: React.KeyboardEvent) => {
e.stopPropagation();
};
- const FieldEditor = ({ title, field }: { title: string, field: keyof typeof formData }) => (
-
-
-
-
- {((field === 'longDe' && formData.longEn) ||
- (field === 'longEn' && formData.longDe) ||
- (field === 'shortDe' && (formData.longDe || formData.shortEn)) ||
- (field === 'shortEn' && (formData.shortDe || formData.longEn))) && (
-
-
- Can translate from existing
-
- )}
-
-
- {generatedFields.has(field) && (
-
-
- AI Generated - You can still edit manually
-
- )}
-
-
- );
-
return (
<>
@@ -290,28 +320,72 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
INNER BOX (L × W × H) cm
-
-
-
+
setFormData(p => ({...p, innerL: val}))} placeholder="L" />
+ setFormData(p => ({...p, innerW: val}))} placeholder="W" />
+ setFormData(p => ({...p, innerH: val}))} placeholder="H" />
OUTER BOX (L × W × H) cm
-
-
-
+
setFormData(p => ({...p, outerL: val}))} placeholder="L" />
+ setFormData(p => ({...p, outerW: val}))} placeholder="W" />
+ setFormData(p => ({...p, outerH: val}))} placeholder="H" />
-
-
+ setFormData(p => ({...p, unitsOuter: val}))} />
+ setFormData(p => ({...p, moq: val}))} />
-
-
-
-
+ handleGenerate('longDe')}
+ onChange={(val) => setFormData(p => ({...p, longDe: val}))}
+ onKeyDown={handleInputKeyDown}
+ />
+ handleGenerate('longEn')}
+ onChange={(val) => setFormData(p => ({...p, longEn: val}))}
+ onKeyDown={handleInputKeyDown}
+ />
+ handleGenerate('shortDe')}
+ onChange={(val) => setFormData(p => ({...p, shortDe: val}))}
+ onKeyDown={handleInputKeyDown}
+ />
+ handleGenerate('shortEn')}
+ onChange={(val) => setFormData(p => ({...p, shortEn: val}))}
+ onKeyDown={handleInputKeyDown}
+ />