Add create cards with keyboard

CTRL+ENTER to create
CTRL+SHIFT+ENTER to create and add another
This commit is contained in:
Jorge Manrubia
2025-11-11 12:38:23 +01:00
parent 83c3f19c12
commit 0f664a8ce1
2 changed files with 8 additions and 3 deletions
@@ -6,6 +6,10 @@ export default class extends Controller {
async click() {
await nextFrame()
this.clickableTarget.click()
this.#clickable.click()
}
get #clickable() {
return this.hasClickableTarget ? this.clickableTarget : this.element
}
}
@@ -1,12 +1,13 @@
<div class="card-perma__notch card-perma__notch--bottom">
<%= button_to card_publish_path(card), name: "creation_type", value: "add", class: "btn",
form: { data: { controller: "form" } },
data: { form_target: "submit" } do %>
data: { form_target: "submit", controller: "clicker", action: "keydown.ctrl+enter@document->clicker#click keydown.meta+enter@document->clicker#click" } do %>
<span>Create card</span>
<% end %>
<%= button_to card_publish_path(card), method: :post, class: "btn btn--reversed", name: "creation_type", value: "add_another",
title: "Create and add another (ctrl+shift+enter)", form: { data: { controller: "form" } }, data: { form_target: "submit" } do %>
title: "Create and add another (ctrl+shift+enter)", form: { data: { controller: "form" } },
data: { form_target: "submit", controller: "clicker", action: "keydown.ctrl+shift+enter@document->clicker#click keydown.meta+shift+enter@document->clicker#click" } do %>
<span>Create and add another</span>
<% end %>
</div>