Files
linkding/bookmarks/frontend/components/upload-button.js
2026-01-01 01:08:54 +01:00

32 lines
870 B
JavaScript

import { HeadlessElement } from "../utils/element.js";
class UploadButton extends HeadlessElement {
init() {
this.onClick = this.onClick.bind(this);
this.onChange = this.onChange.bind(this);
this.button = this.querySelector('button[type="submit"]');
this.button.addEventListener("click", this.onClick);
this.fileInput = this.querySelector('input[type="file"]');
this.fileInput.addEventListener("change", this.onChange);
}
onClick(event) {
event.preventDefault();
this.fileInput.click();
}
onChange() {
// Check if the file input has a file selected
if (!this.fileInput.files.length) {
return;
}
this.closest("form").requestSubmit(this.button);
// remove selected file so it doesn't get submitted again
this.fileInput.value = "";
}
}
customElements.define("ld-upload-button", UploadButton);