mirror of
https://github.com/gotson/komga.git
synced 2025-12-19 23:12:47 +01:00
fix(webui): drop poster from browser images
This commit is contained in:
parent
88357a589e
commit
7cb2a87a7f
2 changed files with 19 additions and 6 deletions
|
|
@ -7,16 +7,22 @@
|
|||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import {getFileFromUrl} from '@/functions/file'
|
||||
|
||||
export default Vue.extend({
|
||||
name: 'DropZone',
|
||||
methods: {
|
||||
dropHandler(event: Event) {
|
||||
async dropHandler(event: Event) {
|
||||
if (event instanceof DragEvent && event.dataTransfer) {
|
||||
const droppedFiles = event.dataTransfer.files
|
||||
if (!droppedFiles) return
|
||||
|
||||
this.$emit('on-input-change', Array.from(droppedFiles))
|
||||
if (event.dataTransfer.files.length > 0)
|
||||
this.$emit('on-input-change', Array.from(event.dataTransfer.files))
|
||||
else {
|
||||
const url = event.dataTransfer.getData('text/uri-list')
|
||||
if (url) {
|
||||
const file = await getFileFromUrl(url)
|
||||
this.$emit('on-input-change', [file])
|
||||
}
|
||||
}
|
||||
}
|
||||
if (event.target instanceof HTMLInputElement && event.target.files) {
|
||||
const selectedFiles = event.target.files
|
||||
|
|
@ -34,7 +40,7 @@ export default Vue.extend({
|
|||
|
||||
<style scoped>
|
||||
.drop-zone {
|
||||
background:repeating-linear-gradient(
|
||||
background: repeating-linear-gradient(
|
||||
135deg,
|
||||
var(--v-base-lighten1),
|
||||
var(--v-base-lighten1) 20px,
|
||||
|
|
|
|||
7
komga-webui/src/functions/file.ts
Normal file
7
komga-webui/src/functions/file.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export async function getFileFromUrl(url: string, name: string = url, defaultType = 'image/jpeg') {
|
||||
const response = await fetch(url)
|
||||
const data = await response.blob()
|
||||
return new File([data], name, {
|
||||
type: data.type || defaultType,
|
||||
})
|
||||
}
|
||||
Loading…
Reference in a new issue