Skip to content

Commit bb7eedc

Browse files
authored
Fix: Restore single-row inline editing behavior (#1244)
Previously, multiple rows could be edited simultaneously in inline edit mode. This restores the original behavior where only one row can be edited at a time. When inline editing starts (_datagrid_inline_editing), all edit trigger buttons are now hidden. When editing completes or is cancelled, the triggers are shown again, allowing another row to be edited.
1 parent bf8b0e0 commit bb7eedc

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

assets/plugins/features/inline.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ export class InlinePlugin implements DatagridPlugin {
1010
datagrid.ajax.addEventListener('success', ({ detail: { payload } }) => {
1111
if (!payload._datagrid_name || payload._datagrid_name !== datagrid.name) return;
1212

13+
// Hide all edit triggers when inline editing starts
14+
if (payload._datagrid_inline_editing) {
15+
datagrid.el.querySelectorAll<HTMLElement>(".datagrid-inline-edit-trigger").forEach(trigger => {
16+
trigger.classList.add("hidden");
17+
});
18+
}
19+
20+
// Show all edit triggers and mark row as edited when editing completes or is cancelled
1321
if (payload._datagrid_inline_edited || payload._datagrid_inline_edit_cancel) {
1422
if (payload._datagrid_inline_edited) {
1523
let rows = datagrid.el.querySelectorAll<HTMLTableCellElement>(
@@ -21,6 +29,11 @@ export class InlinePlugin implements DatagridPlugin {
2129
});
2230
}
2331

32+
// Show all edit triggers again
33+
datagrid.el.querySelectorAll<HTMLElement>(".datagrid-inline-edit-trigger").forEach(trigger => {
34+
trigger.classList.remove("hidden");
35+
});
36+
2437
return;
2538
}
2639

0 commit comments

Comments
 (0)