From 9d09d016bb63c3770a03b95b432c0dd0a6994b25 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Mon, 12 May 2025 16:48:56 +0900 Subject: [PATCH 1/9] wip --- locales/index.d.ts | 4 + locales/ja-JP.yml | 1 + .../src/components/MkCropperDialog.vue | 18 +- packages/frontend/src/components/MkDrive.vue | 10 +- .../frontend/src/components/MkModalWindow.vue | 36 +-- .../src/components/MkUploadDialog.vue | 237 ++++++++++++++++++ packages/frontend/src/ui/_common_/common.vue | 4 - packages/frontend/src/ui/_common_/upload.vue | 134 ---------- packages/frontend/src/utility/select-file.ts | 24 +- packages/frontend/src/utility/upload.ts | 162 ------------ 10 files changed, 274 insertions(+), 356 deletions(-) create mode 100644 packages/frontend/src/components/MkUploadDialog.vue delete mode 100644 packages/frontend/src/ui/_common_/upload.vue delete mode 100644 packages/frontend/src/utility/upload.ts diff --git a/locales/index.d.ts b/locales/index.d.ts index ed9d127a2e..1ec8b2da8b 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -1210,6 +1210,10 @@ export interface Locale extends ILocale { * アップロードが完了するまで時間がかかる場合があります。 */ "uploadFromUrlMayTakeTime": string; + /** + * {n}個のファイルをアップロード + */ + "uploadNFiles": ParameterizedString<"n">; /** * みつける */ diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index e318234087..34c9396c64 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -298,6 +298,7 @@ uploadFromUrl: "URLアップロード" uploadFromUrlDescription: "アップロードしたいファイルのURL" uploadFromUrlRequested: "アップロードをリクエストしました" uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。" +uploadNFiles: "{n}個のファイルをアップロード" explore: "みつける" messageRead: "既読" noMoreHistory: "これより過去の履歴はありません" diff --git a/packages/frontend/src/components/MkCropperDialog.vue b/packages/frontend/src/components/MkCropperDialog.vue index ba21394cbc..99854bc66e 100644 --- a/packages/frontend/src/components/MkCropperDialog.vue +++ b/packages/frontend/src/components/MkCropperDialog.vue @@ -15,18 +15,16 @@ SPDX-License-Identifier: AGPL-3.0-only @closed="emit('closed')" > - + diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue index a1f76ac563..036ce1c807 100644 --- a/packages/frontend/src/components/MkDrive.vue +++ b/packages/frontend/src/components/MkDrive.vue @@ -111,7 +111,7 @@ import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; import { useStream } from '@/stream.js'; import { i18n } from '@/i18n.js'; -import { uploadFile, uploads } from '@/utility/upload.js'; +import { uploadFile, uploa______ds } from '@/utility/upload.js'; import { claimAchievement } from '@/utility/achievements.js'; import { prefer } from '@/preferences.js'; import { chooseFileFromPc } from '@/utility/select-file.js'; @@ -145,7 +145,7 @@ const moreFolders = ref(false); const hierarchyFolders = ref([]); const selectedFiles = ref([]); const selectedFolders = ref([]); -const uploadings = uploads; +const uploadings = uploa______ds; const connection = useStream().useChannel('drive'); // ドロップされようとしているか @@ -625,12 +625,6 @@ function getMenu() { menu.push({ text: i18n.ts.addFile, type: 'label', - }, { - text: i18n.ts.upload + ' (' + i18n.ts.compress + ')', - icon: 'ti ti-upload', - action: () => { - chooseFileFromPc(true, { uploadFolder: folder.value?.id, keepOriginal: false }); - }, }, { text: i18n.ts.upload, icon: 'ti ti-upload', diff --git a/packages/frontend/src/components/MkModalWindow.vue b/packages/frontend/src/components/MkModalWindow.vue index 19989e375b..fb62e9e0cb 100644 --- a/packages/frontend/src/components/MkModalWindow.vue +++ b/packages/frontend/src/components/MkModalWindow.vue @@ -6,7 +6,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- - -
-
+
@@ -41,18 +38,23 @@ SPDX-License-Identifier: AGPL-3.0-only
+ + + +
@@ -62,6 +66,10 @@ const props = defineProps<{ &.error { color: var(--MI_THEME-error); } + + &.waiting { + color: var(--MI_THEME-accent); + } } .line { @@ -87,6 +95,13 @@ const props = defineProps<{ transform: rotate(-90deg); } +.animCircleWaiting { + stroke-dasharray: var(--l); + stroke-dashoffset: calc(var(--l) / 1.5); + animation: waiting 0.75s linear infinite; + transform-origin: center; +} + .animFade { opacity: 0; animation: fade-in var(--duration, 0.5s) cubic-bezier(0,0,.25,1) 1 forwards; @@ -104,6 +119,15 @@ const props = defineProps<{ } } +@keyframes waiting { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + @keyframes fade-in { 0% { opacity: 0; diff --git a/packages/frontend/src/pages/debug.vue b/packages/frontend/src/pages/debug.vue index 4a28d513f5..5cd68c2c3a 100644 --- a/packages/frontend/src/pages/debug.vue +++ b/packages/frontend/src/pages/debug.vue @@ -23,6 +23,7 @@ SPDX-License-Identifier: AGPL-3.0-only + From 988ebb8aaa4224f997275a8581501b1e7e4af3a4 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 13 May 2025 12:00:05 +0900 Subject: [PATCH 8/9] wip --- locales/index.d.ts | 10 ++++++ locales/ja-JP.yml | 4 +++ .../src/components/MkUploadDialog.vue | 31 +++++++++++++++++-- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index 3b27149cd8..c9f3ce3f5e 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -11902,6 +11902,16 @@ export interface Locale extends ILocale { "text3": string; }; }; + "_uploader": { + /** + * {x}に圧縮 + */ + "compressedToX": ParameterizedString<"x">; + /** + * {x}%節約 + */ + "savedXPercent": ParameterizedString<"x">; + }; } declare const locales: { [lang: string]: Locale; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 4c6e1f1e58..7045a6f46a 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -3182,3 +3182,7 @@ _serverSetupWizard: text1: "Misskeyは有志によって開発されている無料のソフトウェアです。" text2: "今後も開発を続けられるように、よろしければぜひカンパをお願いいたします。" text3: "支援者向け特典もあります!" + +_uploader: + compressedToX: "{x}に圧縮" + savedXPercent: "{x}%節約" diff --git a/packages/frontend/src/components/MkUploadDialog.vue b/packages/frontend/src/components/MkUploadDialog.vue index 9dcdea2523..7bc2febbf6 100644 --- a/packages/frontend/src/components/MkUploadDialog.vue +++ b/packages/frontend/src/components/MkUploadDialog.vue @@ -17,7 +17,13 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
@@ -27,7 +33,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ ctx.name }}
{{ bytes(ctx.file.size) }} - ({{ bytes(ctx.compressedSize) }}) + ({{ i18n.tsx._uploader.compressedToX({ x: bytes(ctx.compressedSize) }) }} = {{ i18n.tsx._uploader.savedXPercent({ x: Math.round((1 - ctx.compressedSize / ctx.file.size) * 100) }) }})
@@ -181,6 +187,7 @@ async function upload() { // エラーハンドリングなどを考慮してシ for (const item of items.value.filter(item => item.uploaded == null)) { item.waiting = true; + item.uploadFailed = false; const shouldCompress = item.compressedImage == null && compressionLevel.value !== 0 && compressionSettings.value && compressionSupportedTypes.includes(item.file.type) && !(await isAnimated(item.file)); @@ -272,7 +279,7 @@ onMounted(() => { width: var(--p); height: 100%; background: color(from var(--MI_THEME-accent) srgb r g b / 0.5); - transition: width 0.2s ease; + transition: width 0.2s ease, left 0.2s ease; } &.itemWaiting { @@ -291,6 +298,23 @@ onMounted(() => { animation: stripe .8s infinite linear; } } + + &.itemCompleted { + &::before { + left: 100%; + width: var(--p); + } + + .itemBody { + color: var(--MI_THEME-accent); + } + } + + &.itemFailed { + .itemBody { + color: var(--MI_THEME-error); + } + } } @keyframes stripe { @@ -310,6 +334,7 @@ onMounted(() => { .itemThumbnail { width: 70px; height: 70px; + background-color: var(--MI_THEME-bg); background-size: contain; background-position: center; background-repeat: no-repeat; From a2e1b8b41bbab341aef687ee91f0ac43de798818 Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Tue, 13 May 2025 12:03:07 +0900 Subject: [PATCH 9/9] Update MkUploadDialog.vue --- packages/frontend/src/components/MkUploadDialog.vue | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/components/MkUploadDialog.vue b/packages/frontend/src/components/MkUploadDialog.vue index 7bc2febbf6..2051e565c4 100644 --- a/packages/frontend/src/components/MkUploadDialog.vue +++ b/packages/frontend/src/components/MkUploadDialog.vue @@ -39,9 +39,9 @@ SPDX-License-Identifier: AGPL-3.0-only
- - - + + +
@@ -359,4 +359,8 @@ onMounted(() => { display: flex; gap: 8px; } + +.itemIcon { + width: 35px; +}