Fix Records override save/clear: reload grid, allow blank overrides to suppress mappings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d3a423c6ad
commit
814dcb7af1
@ -210,10 +210,7 @@ export default function Records({ source }) {
|
||||
setPanelSaving(true)
|
||||
setPanelMsg(null)
|
||||
try {
|
||||
// Only send cols that have a non-empty value
|
||||
const toSave = Object.fromEntries(
|
||||
Object.entries(overrideDraft).filter(([, v]) => String(v).trim())
|
||||
)
|
||||
const toSave = { ...overrideDraft }
|
||||
const updated = await api.setRecordOverrides(selectedRecord.id, toSave)
|
||||
setSelectedRecord(updated)
|
||||
setOverrideDraft(updated.overrides || {})
|
||||
@ -221,10 +218,7 @@ export default function Records({ source }) {
|
||||
setOverrideCols(prev => [...new Set([...prev, ...extraCols.filter(c => c.trim())])])
|
||||
setExtraCols([])
|
||||
setPanelMsg({ text: 'Saved.', ok: true })
|
||||
setRows(rs => rs.map(r => r.id === updated.id
|
||||
? { ...r, _overridden: updated.overrides != null && Object.keys(updated.overrides).length > 0 }
|
||||
: r
|
||||
))
|
||||
load(offset, sort.col, sort.dir, filters)
|
||||
} catch (err) {
|
||||
setPanelMsg({ text: err.message, ok: false })
|
||||
} finally {
|
||||
@ -241,7 +235,7 @@ export default function Records({ source }) {
|
||||
setSelectedRecord(updated)
|
||||
setOverrideDraft({})
|
||||
setPanelMsg({ text: 'Cleared.', ok: true })
|
||||
setRows(rs => rs.map(r => r.id === updated.id ? { ...r, _overridden: false } : r))
|
||||
load(offset, sort.col, sort.dir, filters)
|
||||
} catch (err) {
|
||||
setPanelMsg({ text: err.message, ok: false })
|
||||
} finally {
|
||||
@ -257,7 +251,10 @@ export default function Records({ source }) {
|
||||
// All override cols: known from DB + new ones added this session
|
||||
const allOverrideCols = [...new Set([...overrideCols, ...extraCols])]
|
||||
|
||||
const isDirty = Object.values(overrideDraft).some(v => String(v).trim()) || extraCols.some(c => c.trim())
|
||||
const savedOverrides = selectedRecord?.overrides || {}
|
||||
const isDirty = Object.values(overrideDraft).some(v => String(v).trim())
|
||||
|| extraCols.some(c => c.trim())
|
||||
|| Object.keys(savedOverrides).some(k => !String(overrideDraft[k] ?? '').trim())
|
||||
|
||||
return (
|
||||
<div className="flex h-full min-h-0 overflow-hidden">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user