diff options
| author | taichan <40626578+tai-cha@users.noreply.github.com> | 2024-02-05 15:01:31 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-05 15:01:31 +0900 |
| commit | ddfc3b8a6a398f005ccb186654572b37f5e232a5 (patch) | |
| tree | 2edcba76d7816715f3c5233da6a1c64bea12cd41 /packages/frontend/src | |
| parent | New Crowdin updates (#13156) (diff) | |
| download | sharkey-ddfc3b8a6a398f005ccb186654572b37f5e232a5.tar.gz sharkey-ddfc3b8a6a398f005ccb186654572b37f5e232a5.tar.bz2 sharkey-ddfc3b8a6a398f005ccb186654572b37f5e232a5.zip | |
Fix(frontend): クロップ後の解像度が異様に低くなる問題の修正&クロップに失敗する問題&コメントにnullという文字列が入る問題の修正 (#13162)
* Fix(frontend): Fix resolution of cropped image (misskey-dev#11489)
* CHANGELOG
* Fix(frontend): クロップの際、folderIdがnullだと文字列のnullが送られ検索できない問題
* Fix: キャプションが存在しないときにクロップすると'null'がキャプションに入ってしまう問題 (misskey-dev#11813)
* Update CHANGELOG
Diffstat (limited to 'packages/frontend/src')
| -rw-r--r-- | packages/frontend/src/components/MkCropperDialog.vue | 17 |
1 files changed, 12 insertions, 5 deletions
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<Misskey.entities.DriveFile>(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); } |