fix(grid): keep pending new rows visible under column filters
This commit is contained in:
2 files changed
+16
-2
No files matched your search
@@ -1315,7 +1315,6 @@ const {
|
||||
applyLocalFilter,
|
||||
applyTypedLocalFilterValue,
|
||||
clearLocalFilter,
|
||||
rowMatchesLocalColumnFilters,
|
||||
} = localColumnFilterRuntime;
|
||||
|
||||
function guardHeaderPanelDismiss() {
|
||||
@@ -4405,7 +4404,9 @@ const displayRowRefs = computed<DisplayRowRef[]>(() => {
|
||||
} else {
|
||||
const newIndex = entry.newIndex;
|
||||
const row = newRows.value[newIndex];
|
||||
if (!row || !rowMatchesLocalColumnFilters(row)) continue;
|
||||
// Pending rows must remain visible while a column filter is active so
|
||||
// users can fill in and review newly inserted records before saving.
|
||||
if (!row) continue;
|
||||
const status: RowStatus = "new";
|
||||
if (!matchesRowStatusFilter(status, rowStatusFilter.value)) continue;
|
||||
refs.push({
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
const dataGridSource = readFileSync(new URL("../DataGrid.vue", import.meta.url), "utf8");
|
||||
|
||||
describe("DataGrid pending row visibility under local column filters", () => {
|
||||
it("keeps pending new rows visible while a local column filter is active", () => {
|
||||
// The pending-row branch of displayRowRefs must not consult the local
|
||||
// column filter matchers; only the row status filter applies (#9201).
|
||||
expect(dataGridSource).toMatch(/const row = newRows\.value\[newIndex\];[\s\S]{0,200}?if \(!row\) continue;/);
|
||||
expect(dataGridSource).not.toContain("!rowMatchesLocalColumnFilters(row)");
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user