From 03351cec0ccdba39b36619a401c6af8b65ea0295 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 5 Feb 2024 11:03:12 +0900 Subject: update patrons --- packages/frontend/src/pages/about-misskey.vue | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue index f8eced8d72..acaae9f1d7 100644 --- a/packages/frontend/src/pages/about-misskey.vue +++ b/packages/frontend/src/pages/about-misskey.vue @@ -214,6 +214,12 @@ const patronsWithIcon = [{ }, { name: 'taichan', icon: 'https://assets.misskey-hub.net/patrons/f981ab0159fb4e2c998e05f7263e1cd9.png', +}, { + name: '猫吉よりお', + icon: 'https://assets.misskey-hub.net/patrons/a11518b3b34b4536a4bdd7178ba76a7b.png', +}, { + name: '有栖かずみ', + icon: 'https://assets.misskey-hub.net/patrons/9240e8e0ba294a8884143e99ac7ed6a0.png', }]; const patrons = [ -- cgit v1.2.3-freya From ddfc3b8a6a398f005ccb186654572b37f5e232a5 Mon Sep 17 00:00:00 2001 From: taichan <40626578+tai-cha@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:01:31 +0900 Subject: Fix(frontend): クロップ後の解像度が異様に低くなる問題の修正&クロップに失敗する問題&コメントにnullという文字列が入る問題の修正 (#13162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix(frontend): Fix resolution of cropped image (misskey-dev#11489) * CHANGELOG * Fix(frontend): クロップの際、folderIdがnullだと文字列のnullが送られ検索できない問題 * Fix: キャプションが存在しないときにクロップすると'null'がキャプションに入ってしまう問題 (misskey-dev#11813) * Update CHANGELOG --- CHANGELOG.md | 3 +++ packages/frontend/src/components/MkCropperDialog.vue | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'packages/frontend/src') diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6cf2071b..c089aae279 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,9 @@ - Enhance: ページ遷移時にPlayerを閉じるように - Fix: iOSで大きな画像を変換してアップロードできない問題を修正 - Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正 +- Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正 +- Fix: 画像をクロップ時、正常に完了できない問題の修正 +- Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正 ### Server - Enhance: 連合先のレートリミットに引っかかった際にリトライするようになりました diff --git a/packages/frontend/src/components/MkCropperDialog.vue b/packages/frontend/src/components/MkCropperDialog.vue index 0a1ddd3171..745453646c 100644 --- a/packages/frontend/src/components/MkCropperDialog.vue +++ b/packages/frontend/src/components/MkCropperDialog.vue @@ -63,18 +63,25 @@ const loading = ref(true); const ok = async () => { const promise = new Promise(async (res) => { - const croppedCanvas = await cropper?.getCropperSelection()?.$toCanvas(); + const croppedImage = await cropper?.getCropperImage(); + const croppedSection = await cropper?.getCropperSelection(); + + // 拡大率を計算し、(ほぼ)元の大きさに戻す + const zoomedRate = croppedImage.getBoundingClientRect().width / croppedImage.clientWidth; + const widthToRender = croppedSection.getBoundingClientRect().width / zoomedRate; + + const croppedCanvas = await croppedSection?.$toCanvas({ width: widthToRender }); croppedCanvas?.toBlob(blob => { if (!blob) return; const formData = new FormData(); formData.append('file', blob); formData.append('name', `cropped_${props.file.name}`); formData.append('isSensitive', props.file.isSensitive ? 'true' : 'false'); - formData.append('comment', props.file.comment ?? 'null'); + if (props.file.comment) { formData.append('comment', props.file.comment);} formData.append('i', $i!.token); - if (props.uploadFolder || props.uploadFolder === null) { - formData.append('folderId', props.uploadFolder ?? 'null'); - } else if (defaultStore.state.uploadFolder) { + if (props.uploadFolder) { + formData.append('folderId', props.uploadFolder); + } else if (props.uploadFolder !== null && defaultStore.state.uploadFolder) { formData.append('folderId', defaultStore.state.uploadFolder); } -- cgit v1.2.3-freya From 0df069494e70eafa7217b79d133bb248865baa85 Mon Sep 17 00:00:00 2001 From: zyoshoka <107108195+zyoshoka@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:02:30 +0900 Subject: refactor(frontend): `os.popup()`の`events`の型チェックを有効化 (#13165) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend/src/os.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts index 7cce77cdf7..010fdbb6d8 100644 --- a/packages/frontend/src/os.ts +++ b/packages/frontend/src/os.ts @@ -128,9 +128,10 @@ export function promiseDialog>( let popupIdCount = 0; export const popups = ref([]) as Ref<{ - id: any; - component: any; + id: number; + component: Component; props: Record; + events: Record; }[]>; const zIndexes = { @@ -144,7 +145,18 @@ export function claimZIndex(priority: keyof typeof zIndexes = 'low'): number { return zIndexes[priority]; } -export async function popup(component: T, props: ComponentProps, events = {}, disposeEvent?: string) { +// InstanceType['$emit'] だとインターセクション型が返ってきて +// 使い物にならないので、代わりに ['$props'] から色々省くことで emit の型を生成する +// FIXME: 何故か *.ts ファイルからだと型がうまく取れない?ことがあるのをなんとかしたい +type ComponentEmit = T extends new () => { $props: infer Props } + ? EmitsExtractor + : never; + +type EmitsExtractor = { + [K in keyof T as K extends `onVnode${string}` ? never : K extends `on${infer E}` ? Uncapitalize : K extends string ? never : K]: T[K]; +}; + +export async function popup(component: T, props: ComponentProps, events: ComponentEmit = {} as ComponentEmit, disposeEvent?: keyof ComponentEmit) { markRaw(component); const id = ++popupIdCount; -- cgit v1.2.3-freya From 16eccad49271b81282cdbd482d29e7a8bb048f4c Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Tue, 6 Feb 2024 15:03:07 +0900 Subject: enhance(frontend): シンタックスハイライトにテーマを適用できるように (#13175) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance(frontend): シンタックスハイライトにテーマを適用できるように * Update Changelog * こっちも * テーマの値がディープマージされるように * 常にテーマ設定に準じるように * テーマ更新時に新しいshikiテーマを読み込むように --- CHANGELOG.md | 1 + packages/frontend/src/components/MkCode.core.vue | 56 +++++++++++++++++-- packages/frontend/src/components/MkCode.vue | 8 +-- packages/frontend/src/components/MkCodeEditor.vue | 5 +- packages/frontend/src/components/MkCodeInline.vue | 3 +- packages/frontend/src/components/MkSelect.vue | 7 ++- packages/frontend/src/pages/settings/theme.vue | 15 ++++- packages/frontend/src/pizzax.ts | 23 +------- packages/frontend/src/router/main.ts | 4 ++ packages/frontend/src/scripts/clone.ts | 4 +- packages/frontend/src/scripts/code-highlighter.ts | 68 ++++++++++++++++++++++- packages/frontend/src/scripts/merge.ts | 31 +++++++++++ packages/frontend/src/scripts/theme.ts | 10 +++- packages/frontend/src/store.ts | 1 + packages/frontend/src/themes/_dark.json5 | 4 ++ packages/frontend/src/themes/_light.json5 | 4 ++ 16 files changed, 202 insertions(+), 42 deletions(-) create mode 100644 packages/frontend/src/scripts/merge.ts (limited to 'packages/frontend/src') diff --git a/CHANGELOG.md b/CHANGELOG.md index c089aae279..c39a447c59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - Enhance: MFMの属性でオートコンプリートが使用できるように #12735 - Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように - Enhance: リモートのユーザーはメニューから直接リモートで表示できるように +- Enhance: コードのシンタックスハイライトにテーマを適用できるように - Fix: ネイティブモードの絵文字がモノクロにならないように - Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正 - Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正 diff --git a/packages/frontend/src/components/MkCode.core.vue b/packages/frontend/src/components/MkCode.core.vue index c655ff416e..68c50c4c69 100644 --- a/packages/frontend/src/components/MkCode.core.vue +++ b/packages/frontend/src/components/MkCode.core.vue @@ -5,14 +5,15 @@ SPDX-License-Identifier: AGPL-3.0-only