From 5fa695830d23c4830db87f864cde05cf9c9cec62 Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Sun, 20 Sep 2020 22:05:34 +0900 Subject: [PATCH] wip --- src/client/components/post-form.vue | 3 +-- src/client/os.ts | 25 +++++++++++++++++++ src/client/pages/my-settings/drive.vue | 3 +-- .../page-editor/els/page-editor.el.image.vue | 3 +-- src/client/pages/page-editor/page-editor.vue | 3 +-- src/client/pages/test.vue | 3 +-- src/client/root.vue | 4 +-- src/client/scripts/select-drive-file.ts | 12 --------- src/client/scripts/select-drive-folder.ts | 13 ---------- src/client/scripts/select-file.ts | 3 +-- src/client/{ => ui}/deck.vue | 2 +- src/client/{ => ui}/default.vue | 4 +-- 12 files changed, 36 insertions(+), 42 deletions(-) delete mode 100644 src/client/scripts/select-drive-file.ts delete mode 100644 src/client/scripts/select-drive-folder.ts rename src/client/{ => ui}/deck.vue (99%) rename src/client/{ => ui}/default.vue (99%) diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index ea1bad82cf..073a31aa82 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -66,7 +66,6 @@ import { erase, unique } from '../../prelude/array'; import extractMentions from '../../misc/extract-mentions'; import getAcct from '../../misc/acct/render'; import { formatTimeString } from '../../misc/format-time-string'; -import { selectDriveFile } from '@/scripts/select-drive-file'; import { Autocomplete } from '@/scripts/autocomplete'; import { noteVisibilities } from '../../types'; import { utils } from '@syuilo/aiscript'; @@ -379,7 +378,7 @@ export default defineComponent({ }, chooseFileFromDrive() { - selectDriveFile(true).then(files => { + os.selectDriveFile(true).then(files => { for (const file of files) { this.attachMedia(file); } diff --git a/src/client/os.ts b/src/client/os.ts index 3de504d2ea..8c1944a73a 100644 --- a/src/client/os.ts +++ b/src/client/os.ts @@ -143,6 +143,31 @@ export function dialog(props: Record<string, any>, opts?: { cancelableByBgClick: }); } +export function selectDriveFile(multiple) { + return new Promise(async (res, rej) => { + modal(await import('@/components/drive-window.vue'), { + type: 'file', + multiple + }).then(files => { + res(multiple ? files : files[0]); + }); + }); +} + +export function selectDriveFolder(multiple) { + return new Promise((res, rej) => { + import('@/components/drive-window.vue').then(dialog => { + const w = $root.new(dialog, { + type: 'folder', + multiple + }); + w.$once('selected', folders => { + res(multiple ? folders : (folders.length === 0 ? null : folders[0])); + }); + }); + }); +} + export function menu(props: Record<string, any>, opts?: { source: any; }) { return modal(defineAsyncComponent(() => import('@/components/menu.vue')), props, {}, { position: 'source', diff --git a/src/client/pages/my-settings/drive.vue b/src/client/pages/my-settings/drive.vue index 8622eacaf2..d13f1f25a7 100644 --- a/src/client/pages/my-settings/drive.vue +++ b/src/client/pages/my-settings/drive.vue @@ -13,7 +13,6 @@ import { defineComponent } from 'vue'; import { faCloud, faFolderOpen } from '@fortawesome/free-solid-svg-icons'; import { faClock, faEyeSlash, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; import MkButton from '@/components/ui/button.vue'; -import { selectDriveFolder } from '@/scripts/select-drive-folder'; import * as os from '@/os'; export default defineComponent({ @@ -38,7 +37,7 @@ export default defineComponent({ methods: { chooseUploadFolder() { - selectDriveFolder(false).then(async folder => { + os.selectDriveFolder(false).then(async folder => { await this.$store.dispatch('settings/set', { key: 'uploadFolder', value: folder ? folder.id : null }); os.dialog({ type: 'success', diff --git a/src/client/pages/page-editor/els/page-editor.el.image.vue b/src/client/pages/page-editor/els/page-editor.el.image.vue index 8a7885e12f..ad48ff8d2f 100644 --- a/src/client/pages/page-editor/els/page-editor.el.image.vue +++ b/src/client/pages/page-editor/els/page-editor.el.image.vue @@ -19,7 +19,6 @@ import { faPencilAlt } from '@fortawesome/free-solid-svg-icons'; import { faImage, faFolderOpen } from '@fortawesome/free-regular-svg-icons'; import XContainer from '../page-editor.container.vue'; import MkFileThumbnail from '@/components/drive-file-thumbnail.vue'; -import { selectDriveFile } from '@/scripts/select-drive-file'; import * as os from '@/os'; export default defineComponent({ @@ -58,7 +57,7 @@ export default defineComponent({ methods: { async choose() { - selectDriveFile(false).then(file => { + os.selectDriveFile(false).then(file => { this.file = file; this.value.fileId = file.id; }); diff --git a/src/client/pages/page-editor/page-editor.vue b/src/client/pages/page-editor/page-editor.vue index d0533a0614..e60cfe3b2a 100644 --- a/src/client/pages/page-editor/page-editor.vue +++ b/src/client/pages/page-editor/page-editor.vue @@ -106,7 +106,6 @@ import { blockDefs } from '@/scripts/hpml/index'; import { HpmlTypeChecker } from '@/scripts/hpml/type-checker'; import { url } from '@/config'; import { collectPageVars } from '@/scripts/collect-page-vars'; -import { selectDriveFile } from '@/scripts/select-drive-file'; import * as os from '@/os'; export default defineComponent({ @@ -414,7 +413,7 @@ export default defineComponent({ }, setEyeCatchingImage() { - selectDriveFile(false).then(file => { + os.selectDriveFile(false).then(file => { this.eyeCatchingImageId = file.id; }); }, diff --git a/src/client/pages/test.vue b/src/client/pages/test.vue index d11cdef8d0..9f3674771b 100644 --- a/src/client/pages/test.vue +++ b/src/client/pages/test.vue @@ -58,7 +58,6 @@ import MkButton from '@/components/ui/button.vue'; import MkInput from '@/components/ui/input.vue'; import MkSwitch from '@/components/ui/switch.vue'; import MkTextarea from '@/components/ui/textarea.vue'; -import { selectDriveFile } from '@/scripts/select-drive-file'; import * as os from '@/os'; export default defineComponent({ @@ -101,7 +100,7 @@ export default defineComponent({ }, async selectDriveFile() { - const files = await selectDriveFile(); + const files = await os.selectDriveFile(); } } }); diff --git a/src/client/root.vue b/src/client/root.vue index 5b217a7c12..7c566d83c4 100644 --- a/src/client/root.vue +++ b/src/client/root.vue @@ -26,8 +26,8 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; -import DefaultUI from './default.vue'; -import DeckUI from './deck.vue'; +import DefaultUI from '@/ui/default.vue'; +import DeckUI from '@/ui/deck.vue'; import { instanceName, deckmode } from '@/config'; export default defineComponent({ diff --git a/src/client/scripts/select-drive-file.ts b/src/client/scripts/select-drive-file.ts deleted file mode 100644 index cd3a3082c9..0000000000 --- a/src/client/scripts/select-drive-file.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as os from '@/os'; - -export function selectDriveFile(multiple) { - return new Promise(async (res, rej) => { - os.modal(await import('@/components/drive-window.vue'), { - type: 'file', - multiple - }).then(files => { - res(multiple ? files : files[0]); - }); - }); -} diff --git a/src/client/scripts/select-drive-folder.ts b/src/client/scripts/select-drive-folder.ts deleted file mode 100644 index 38e909bfa8..0000000000 --- a/src/client/scripts/select-drive-folder.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function selectDriveFolder(multiple) { - return new Promise((res, rej) => { - import('@/components/drive-window.vue').then(dialog => { - const w = $root.new(dialog, { - type: 'folder', - multiple - }); - w.$once('selected', folders => { - res(multiple ? folders : (folders.length === 0 ? null : folders[0])); - }); - }); - }); -} diff --git a/src/client/scripts/select-file.ts b/src/client/scripts/select-file.ts index 09d49d35c7..5a409447a8 100644 --- a/src/client/scripts/select-file.ts +++ b/src/client/scripts/select-file.ts @@ -1,5 +1,4 @@ import { faUpload, faCloud } from '@fortawesome/free-solid-svg-icons'; -import { selectDriveFile } from './select-drive-file'; import { apiUrl } from '@/config'; import { store } from '@/store'; import * as os from '@/os'; @@ -57,7 +56,7 @@ export function selectFile(src: any, label: string | null, multiple = false) { }; const chooseFileFromDrive = () => { - selectDriveFile(multiple).then(files => { + os.selectDriveFile(multiple).then(files => { res(files); }); }; diff --git a/src/client/deck.vue b/src/client/ui/deck.vue similarity index 99% rename from src/client/deck.vue rename to src/client/ui/deck.vue index 1888667215..a631c6b436 100644 --- a/src/client/deck.vue +++ b/src/client/ui/deck.vue @@ -44,7 +44,7 @@ import DeckColumnCore from '@/components/deck/column-core.vue'; import DeckColumn from '@/components/deck/column.vue'; import XSidebar from '@/components/sidebar.vue'; import { getScrollContainer } from '@/scripts/scroll'; -import * as os from './os'; +import * as os from '@/os'; export default defineComponent({ components: { diff --git a/src/client/default.vue b/src/client/ui/default.vue similarity index 99% rename from src/client/default.vue rename to src/client/ui/default.vue index d2d60a4811..57a4a1641c 100644 --- a/src/client/default.vue +++ b/src/client/ui/default.vue @@ -93,10 +93,10 @@ import { v4 as uuid } from 'uuid'; import { host } from '@/config'; import { search } from '@/scripts/search'; import { StickySidebar } from '@/scripts/sticky-sidebar'; -import { widgets } from './widgets'; +import { widgets } from '@/widgets'; import XSidebar from '@/components/sidebar.vue'; import { Autocomplete } from '@/scripts/autocomplete'; -import * as os from './os'; +import * as os from '@/os'; const DESKTOP_THRESHOLD = 1100;