diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-09 14:28:01 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-09 14:28:01 +0900 |
| commit | be7e3b9a0cb81b78a744993fef2fa2fd2833fa9c (patch) | |
| tree | c82e18ce93ec0a24c57d7e36eb54a09266b3a25b /packages/frontend/src/scripts/get-drive-file-menu.ts | |
| parent | enhnace(frontend): 文字列比較のためのローマナイズを強化(... (diff) | |
| download | sharkey-be7e3b9a0cb81b78a744993fef2fa2fd2833fa9c.tar.gz sharkey-be7e3b9a0cb81b78a744993fef2fa2fd2833fa9c.tar.bz2 sharkey-be7e3b9a0cb81b78a744993fef2fa2fd2833fa9c.zip | |
refactor(frontend): scripts -> utility
Diffstat (limited to 'packages/frontend/src/scripts/get-drive-file-menu.ts')
| -rw-r--r-- | packages/frontend/src/scripts/get-drive-file-menu.ts | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/packages/frontend/src/scripts/get-drive-file-menu.ts b/packages/frontend/src/scripts/get-drive-file-menu.ts deleted file mode 100644 index 6ac0684170..0000000000 --- a/packages/frontend/src/scripts/get-drive-file-menu.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* - * SPDX-FileCopyrightText: syuilo and misskey-project - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import * as Misskey from 'misskey-js'; -import { defineAsyncComponent } from 'vue'; -import type { MenuItem } from '@/types/menu.js'; -import { i18n } from '@/i18n.js'; -import { copyToClipboard } from '@/scripts/copy-to-clipboard.js'; -import * as os from '@/os.js'; -import { misskeyApi } from '@/scripts/misskey-api.js'; -import { prefer } from '@/preferences.js'; - -function rename(file: Misskey.entities.DriveFile) { - os.inputText({ - title: i18n.ts.renameFile, - placeholder: i18n.ts.inputNewFileName, - default: file.name, - }).then(({ canceled, result: name }) => { - if (canceled) return; - misskeyApi('drive/files/update', { - fileId: file.id, - name: name, - }); - }); -} - -function describe(file: Misskey.entities.DriveFile) { - const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkFileCaptionEditWindow.vue')), { - default: file.comment ?? '', - file: file, - }, { - done: caption => { - misskeyApi('drive/files/update', { - fileId: file.id, - comment: caption.length === 0 ? null : caption, - }); - }, - closed: () => dispose(), - }); -} - -function move(file: Misskey.entities.DriveFile) { - os.selectDriveFolder(false).then(folder => { - misskeyApi('drive/files/update', { - fileId: file.id, - folderId: folder[0] ? folder[0].id : null, - }); - }); -} - -function toggleSensitive(file: Misskey.entities.DriveFile) { - misskeyApi('drive/files/update', { - fileId: file.id, - isSensitive: !file.isSensitive, - }).catch(err => { - os.alert({ - type: 'error', - title: i18n.ts.error, - text: err.message, - }); - }); -} - -function copyUrl(file: Misskey.entities.DriveFile) { - copyToClipboard(file.url); - os.success(); -} - -/* -function addApp() { - alert('not implemented yet'); -} -*/ -async function deleteFile(file: Misskey.entities.DriveFile) { - const { canceled } = await os.confirm({ - type: 'warning', - text: i18n.tsx.driveFileDeleteConfirm({ name: file.name }), - }); - - if (canceled) return; - misskeyApi('drive/files/delete', { - fileId: file.id, - }); -} - -export function getDriveFileMenu(file: Misskey.entities.DriveFile, folder?: Misskey.entities.DriveFolder | null): MenuItem[] { - const isImage = file.type.startsWith('image/'); - - const menuItems: MenuItem[] = []; - - menuItems.push({ - type: 'link', - to: `/my/drive/file/${file.id}`, - text: i18n.ts._fileViewer.title, - icon: 'ti ti-info-circle', - }, { type: 'divider' }, { - text: i18n.ts.rename, - icon: 'ti ti-forms', - action: () => rename(file), - }, { - text: i18n.ts.move, - icon: 'ti ti-folder-symlink', - action: () => move(file), - }, { - text: file.isSensitive ? i18n.ts.unmarkAsSensitive : i18n.ts.markAsSensitive, - icon: file.isSensitive ? 'ti ti-eye' : 'ti ti-eye-exclamation', - action: () => toggleSensitive(file), - }, { - text: i18n.ts.describeFile, - icon: 'ti ti-text-caption', - action: () => describe(file), - }); - - if (isImage) { - menuItems.push({ - text: i18n.ts.cropImage, - icon: 'ti ti-crop', - action: () => os.cropImage(file, { - aspectRatio: NaN, - uploadFolder: folder ? folder.id : folder, - }), - }); - } - - menuItems.push({ type: 'divider' }, { - text: i18n.ts.createNoteFromTheFile, - icon: 'ti ti-pencil', - action: () => os.post({ - initialFiles: [file], - }), - }, { - text: i18n.ts.copyUrl, - icon: 'ti ti-link', - action: () => copyUrl(file), - }, { - type: 'a', - href: file.url, - target: '_blank', - text: i18n.ts.download, - icon: 'ti ti-download', - download: file.name, - }, { type: 'divider' }, { - text: i18n.ts.delete, - icon: 'ti ti-trash', - danger: true, - action: () => deleteFile(file), - }); - - if (prefer.s.devMode) { - menuItems.push({ type: 'divider' }, { - icon: 'ti ti-id', - text: i18n.ts.copyFileId, - action: () => { - copyToClipboard(file.id); - }, - }); - } - - return menuItems; -} |