Allow pasting files in comments

This commit is contained in:
Jason Zimdars
2025-01-31 18:07:12 -06:00
parent c83a6e7e34
commit 6f351b956c
2 changed files with 27 additions and 1 deletions
@@ -11,6 +11,31 @@ export default class extends Controller {
this.cancelTarget?.click()
}
pasteFiles(event) {
const editor = event.target.closest("house-md")
if (!editor) return
const files = event.clipboardData?.files
if (!files?.length) return
event.preventDefault()
for (const file of files) {
const uploadEvent = new CustomEvent("house-md:before-upload", {
bubbles: true,
detail: { file },
cancelable: true
})
if (editor.dispatchEvent(uploadEvent)) {
const upload = document.createElement("house-md-upload")
upload.file = file
upload.uploadsURL = editor.dataset.uploadsUrl
editor.appendChild(upload)
}
}
}
preventAttachment(event) {
event.preventDefault()
}
+2 -1
View File
@@ -2,7 +2,8 @@
<div class="flex flex-column full-width">
<div class="position-relative">
<%= form_with model: Comment.new, url: bucket_bubble_comments_path(bubble.bucket, bubble), class: "flex flex-column gap full-width",
data: { controller: "form", action: "keydown.ctrl+enter->form#submit:prevent, keydown.meta+enter->form#submit:prevent, keydown.esc->form#cancel:stop" } do |form| %>
data: { controller: "form",
action: "keydown.ctrl+enter->form#submit:prevent keydown.meta+enter->form#submit:prevent keydown.esc->form#cancel:stop paste->form#pasteFiles" } do |form| %>
<%= form.markdown_area :body, class: "input comment__input", required: true, placeholder: new_comment_placeholder(bubble) %>
<%= form.button class: "comment__submit btn btn--reversed flex-item-justify-end txt-small" do %>
<%= image_tag "check.svg", aria: { hidden: "true" }, size: 24 %>