Disable "enter" hotkeys only on tag input element

We are still able to use enter to submit the form on anyother input.The
tag input creates a new tag when enter is pressed
This commit is contained in:
Gaetan Craig-Riou
2025-04-15 15:10:32 +10:00
parent 6ff47eab3b
commit 31afdfd8c4
4 changed files with 16 additions and 13 deletions

View File

@@ -3,6 +3,14 @@ import { Controller } from "stimulus";
export default class extends Controller {
static targets = ["tagList", "newTag", "template", "list"];
connect() {
// form hotkeys are enabled for "input" scope, we disable the form submit via enter
// on the tag input, so we can use the enter key to create new product tag
hotkeys("enter", { scope: "input", element: this.newTagTarget }, function () {
event.preventDefault();
});
}
addTag() {
// Check if tag already exist
const newTagName = this.newTagTarget.value;

View File

@@ -23,11 +23,6 @@ export default class BulkFormController extends Controller {
recordElements = {};
connect() {
// disable form submit via enter key, so we can use enter key to create new product tags
hotkeys("enter", function (event, handler) {
event.preventDefault();
});
this.submitting = false;
this.form = this.element;

View File

@@ -9,14 +9,6 @@ describe("BulkFormController", () => {
beforeAll(() => {
const application = Application.start();
application.register("bulk-form", bulk_form_controller);
// Mock hotkeys.js
const mockedHotkeys = jest.fn();
global.hotkeys = mockedHotkeys;
});
afterAll(() => {
delete global.hotkeys;
});
describe("Modifying input values", () => {

View File

@@ -9,6 +9,14 @@ describe("TagListInputController", () => {
beforeAll(() => {
const application = Application.start();
application.register("tag-list-input-component--tag-list-input", tag_list_input_controller);
// Mock hotkeys.js
const mockedHotkeys = jest.fn();
global.hotkeys = mockedHotkeys;
});
afterAll(() => {
delete global.hotkeys;
});
beforeEach(() => {