Image paste.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3994 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-10-05 01:40:21 +00:00
parent 5e72b111d9
commit 1cffc5ec24
4 changed files with 29 additions and 4 deletions

View File

@ -25,6 +25,29 @@ class TfComposeElement extends LitElement {
preview.innerHTML = tfutils.markdown(edit.value);
}
paste(event) {
let self = this;
for(let item of event.clipboardData.items) {
if (item.type?.startsWith('image/')) {
let file = item.getAsFile();
if (!file) {
continue;
}
file.arrayBuffer().then(function(buffer) {
let bin = Array.from(new Uint8Array(buffer));
return tfrpc.rpc.store_blob(bin);
}).then(function(id) {
let edit = self.renderRoot.getElementById('edit');
edit.value += `\n![${file.name}](${id})`;
self.changed();
}).catch(function(e) {
alert(e.message);
});
break;
}
}
}
submit() {
let self = this;
let edit = this.renderRoot.getElementById('edit');
@ -75,7 +98,7 @@ class TfComposeElement extends LitElement {
render() {
return html`
<div style="display: flex; flex-direction: row; width: 100%">
<textarea id="edit" @input=${this.changed} style="flex: 1 0 50%"></textarea>
<textarea id="edit" @input=${this.changed} @paste=${this.paste} style="flex: 1 0 50%"></textarea>
<div id="preview" style="flex: 1 0 50%"></div>
</div>
<input type="button" value="Submit" @click=${this.submit}></input>