diff options
| author | taichan <40626578+tai-cha@users.noreply.github.com> | 2025-02-08 17:33:09 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-08 08:33:09 +0000 |
| commit | 2f8d02024a389181794ee9e8f2b70ffbd057cf6f (patch) | |
| tree | 6b8c3b4cfb9a161b03ad2b33b29074ee33ac37fc /packages/frontend/src/components/MkImgPreviewDialog.vue | |
| parent | enhance(frontend): クライアントエラー画面の多言語対応 (#15411) (diff) | |
| download | misskey-2f8d02024a389181794ee9e8f2b70ffbd057cf6f.tar.gz misskey-2f8d02024a389181794ee9e8f2b70ffbd057cf6f.tar.bz2 misskey-2f8d02024a389181794ee9e8f2b70ffbd057cf6f.zip | |
feat(frontend): 画像を投稿前にプレビュー可能に (#15341)
* feat(client): 画像をプレビュー可能に
* Update Changelog
* SPDX
* 消えてたのFix
* Add storybook for MkImgPreviewDialog
* backgroundのスタイル変更
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
* Add MkImgPreviewDialog to storybook generator
* Update packages/frontend/.storybook/generate.tsx
---------
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Diffstat (limited to 'packages/frontend/src/components/MkImgPreviewDialog.vue')
| -rw-r--r-- | packages/frontend/src/components/MkImgPreviewDialog.vue | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkImgPreviewDialog.vue b/packages/frontend/src/components/MkImgPreviewDialog.vue new file mode 100644 index 0000000000..3e6e4e0ec9 --- /dev/null +++ b/packages/frontend/src/components/MkImgPreviewDialog.vue @@ -0,0 +1,58 @@ +<!-- +SPDX-FileCopyrightText: syuilo and misskey-project +SPDX-License-Identifier: AGPL-3.0-only +--> + +<template> +<MkModalWindow + ref="modal" + :width="1800" + :height="900" + @close="close" + @esc="close" + @click="close" +> + <template #header>{{ file.name }}</template> + <div :class="$style.container"> + <img :src="file.url" :alt="file.comment ?? file.name" :class="$style.img"/> + </div> +</MkModalWindow> +</template> +<script lang="ts" setup> +import { defineProps, ref } from 'vue'; +import MkModalWindow from './MkModalWindow.vue'; +import type * as Misskey from 'misskey-js'; + +defineProps<{ + file: Misskey.entities.DriveFile; +}>(); + +const modal = ref<typeof MkModalWindow | null>(null); + +function close() { + modal.value?.close(); +} + +</script> +<style lang="scss" module> + .container { + box-sizing: border-box; + width: 100%; + height: 100%; + min-height: 0; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + + background-color: var(--MI_THEME-bg); + background-size: auto auto; + background-image: repeating-linear-gradient(135deg, transparent, transparent 6px, var(--MI_THEME-panel) 6px, var(--MI_THEME-panel) 12px); + } + + .img { + width: 100%; + max-height: 100%; + object-fit: contain; + } +</style> |