diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-05-07 18:18:32 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-05-07 18:18:32 +0900 |
| commit | 448a933f7704a3392e0c249a2236f0178f9c5fe3 (patch) | |
| tree | e1bc8b561b1f9fd6a7a9aaabf734fc67085b96ef /packages/frontend/src/components/MkMediaImage.vue | |
| parent | enhance(frontend): 閲覧注意設定された画像は表示した状態で... (diff) | |
| download | misskey-448a933f7704a3392e0c249a2236f0178f9c5fe3.tar.gz misskey-448a933f7704a3392e0c249a2236f0178f9c5fe3.tar.bz2 misskey-448a933f7704a3392e0c249a2236f0178f9c5fe3.zip | |
enhance(frontend): モデレーターはノートに添付された画像上から直接NSFW設定できるように
Diffstat (limited to 'packages/frontend/src/components/MkMediaImage.vue')
| -rw-r--r-- | packages/frontend/src/components/MkMediaImage.vue | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkMediaImage.vue b/packages/frontend/src/components/MkMediaImage.vue index 0634ea5c0e..42dc9e79ff 100644 --- a/packages/frontend/src/components/MkMediaImage.vue +++ b/packages/frontend/src/components/MkMediaImage.vue @@ -23,6 +23,7 @@ <div v-if="image.isSensitive" :class="$style.indicator" style="color: var(--warn);">NSFW</div> </div> <button v-tooltip="i18n.ts.hide" :class="$style.hide" class="_button" @click="hide = true"><i class="ti ti-eye-off"></i></button> + <button :class="$style.menu" class="_button" @click.stop="showMenu"><i class="ti ti-dots"></i></button> </div> </template> @@ -34,6 +35,8 @@ import bytes from '@/filters/bytes'; import ImgWithBlurhash from '@/components/MkImgWithBlurhash.vue'; import { defaultStore } from '@/store'; import { i18n } from '@/i18n'; +import * as os from '@/os'; +import { iAmModerator } from '@/account'; const props = defineProps<{ image: misskey.entities.DriveFile; @@ -57,6 +60,17 @@ watch(() => props.image, () => { deep: true, immediate: true, }); + +function showMenu(ev: MouseEvent) { + os.popupMenu([...(iAmModerator ? [{ + text: i18n.ts.markAsSensitive, + icon: 'ti ti-eye-off', + action: () => { + os.apiWithDialog('drive/files/update', { fileId: props.image.id, isSensitive: true }); + }, + }] : [])], ev.currentTarget ?? ev.target); +} + </script> <style lang="scss" module> @@ -106,6 +120,21 @@ watch(() => props.image, () => { right: 12px; } +.menu { + display: block; + position: absolute; + border-radius: 6px; + background-color: rgba(0, 0, 0, 0.3); + -webkit-backdrop-filter: var(--blur, blur(15px)); + backdrop-filter: var(--blur, blur(15px)); + color: #fff; + font-size: 0.8em; + padding: 6px 8px; + text-align: center; + bottom: 12px; + right: 12px; +} + .imageContainer { display: block; cursor: zoom-in; |