/** * @copyright Copyright (c) 2023 John Molakvoæ * * @author John Molakvoæ * * @license AGPL-3.0-or-later * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ import type { Node } from '@nextcloud/files' import DragAndDropPreview from '../components/DragAndDropPreview.vue' import Vue from 'vue' const Preview = Vue.extend(DragAndDropPreview) let preview: Vue export const getDragAndDropPreview = async (nodes: Node[]): Promise => { return new Promise((resolve) => { if (!preview) { preview = new Preview().$mount() document.body.appendChild(preview.$el) } preview.update(nodes) preview.$on('loaded', () => { resolve(preview.$el) preview.$off('loaded') }) }) }