Skip to content

Commit 3d6cd08

Browse files
Merge pull request #4912 from tabulator-tables/fix/select-range-enter-key
fix pressing enter does not trigger editing using select range module
2 parents 3278486 + 7f693e2 commit 3d6cd08

3 files changed

Lines changed: 70 additions & 1 deletion

File tree

src/js/modules/SelectRange/SelectRange.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ export default class SelectRange extends Module {
245245

246246
var activeCell = this.getActiveCell();
247247
// no range is selected
248-
if(activeCell) {
248+
if(!activeCell) {
249249
return;
250250
}
251251

test/e2e/select-range.html

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>Tabulator Test</title>
6+
<link rel="stylesheet" href="../../dist/css/tabulator.min.css" />
7+
<script src="../../dist/js/tabulator.js"></script>
8+
<style>
9+
body {
10+
padding: 20px;
11+
font-family: Arial, sans-serif;
12+
}
13+
#test-table {
14+
width: 100%;
15+
height: 400px;
16+
margin-bottom: 20px;
17+
}
18+
</style>
19+
</head>
20+
<body>
21+
<h1>Tabulator Test</h1>
22+
<div id="test-table"></div>
23+
24+
<script>
25+
// Initialize table with test data
26+
const testData = [
27+
{ id: 1, name: "Alice", age: 25, gender: "Female" },
28+
{ id: 2, name: "Bob", age: 32, gender: "Male" },
29+
{ id: 3, name: "Charlie", age: 45, gender: "Male" },
30+
{ id: 4, name: "Diana", age: 27, gender: "Female" },
31+
{ id: 5, name: "Ethan", age: 35, gender: "Male" },
32+
];
33+
34+
const columns = [
35+
{ title: "ID", field: "id", editor: "input" },
36+
{ title: "Name", field: "name", editor: "input" },
37+
{ title: "Age", field: "age", editor: "input" },
38+
{ title: "Gender", field: "gender", editor: "input" },
39+
];
40+
41+
// Create global reference for tests to access
42+
window.testTable = new Tabulator("#test-table", {
43+
data: testData,
44+
columns: columns,
45+
layout: "fitColumns",
46+
selectableRange: true,
47+
});
48+
</script>
49+
</body>
50+
</html>

test/e2e/select-range.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { test, expect } from "@playwright/test";
2+
import { join } from "path";
3+
4+
test.describe("Select range tests", () => {
5+
test.beforeEach(async ({ page }) => {
6+
await page.goto(`file://${join(__dirname, "select-range.html")}`);
7+
await page.waitForSelector(".tabulator-range-overlay");
8+
});
9+
10+
test("Pressing `enter` should trigger editing", async ({ page }) => {
11+
// We should not see any input elements yet
12+
await expect(page.locator("input")).toBeHidden();
13+
14+
await page.locator("#test-table").press("Enter");
15+
16+
await expect(page.locator("input")).toBeVisible();
17+
await expect(page.locator("input")).toBeFocused();
18+
});
19+
});

0 commit comments

Comments
 (0)