feat: add column pinning (freeze) functionality in Pricing Units tab

- Add Pin Columns button to select columns to freeze
- Implement sticky columns with left positioning for pinned columns
- Support pinning dynamic pricing and container columns
- Add Pin icon indicator on pinned columns
- Include reset and unpin all options in pin panel
This commit is contained in:
Christian Vidal Wolf
2026-04-24 13:23:18 +02:00
parent b8a960e3e5
commit e6207dff64
3 changed files with 278 additions and 47 deletions
+3 -1
View File
@@ -195,7 +195,6 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
const executeGenerate = async () => {
if (!pendingGeminiField) return;
const field = pendingGeminiField;
setPendingGeminiField(null);
setLoadingField(field);
setError(null);
@@ -283,8 +282,10 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
const textarea = document.getElementById(`field-${field}`);
if (textarea) textarea.focus();
}, 100);
setPendingGeminiField(null);
} catch (err: any) {
setError(err.message || 'An error occurred during generation.');
setPendingGeminiField(null); // Close modal on error so error message is visible in panel
} finally {
setLoadingField(null);
}
@@ -489,6 +490,7 @@ export function EditPanel({ row, rowIndex, onSave, onClose, onCaptureState }: Ed
<ConfirmModal
isOpen={!!pendingGeminiField}
isLoading={loadingField !== null}
onConfirm={executeGenerate}
onCancel={() => setPendingGeminiField(null)}
title="Confirm AI Action"