diff options
| author | Marie <github@yuugi.dev> | 2024-12-12 12:50:11 +0000 |
|---|---|---|
| committer | Marie <github@yuugi.dev> | 2024-12-12 12:50:11 +0000 |
| commit | 8eb9c20df73960baf78834da65349fbfb7014f23 (patch) | |
| tree | ab8326ede2f2a475069ad7b820c6689401798c79 /packages/frontend/src/components/MkNoteSimple.vue | |
| parent | merge: fix icons in dev mode (!813) (diff) | |
| parent | Apply suggestions (diff) | |
| download | sharkey-8eb9c20df73960baf78834da65349fbfb7014f23.tar.gz sharkey-8eb9c20df73960baf78834da65349fbfb7014f23.tar.bz2 sharkey-8eb9c20df73960baf78834da65349fbfb7014f23.zip | |
merge: Schedule Notes (!804)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/804
Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Hazelnoot <acomputerdog@gmail.com>
Diffstat (limited to 'packages/frontend/src/components/MkNoteSimple.vue')
| -rw-r--r-- | packages/frontend/src/components/MkNoteSimple.vue | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/packages/frontend/src/components/MkNoteSimple.vue b/packages/frontend/src/components/MkNoteSimple.vue index 542e3e79ea..924262d62e 100644 --- a/packages/frontend/src/components/MkNoteSimple.vue +++ b/packages/frontend/src/components/MkNoteSimple.vue @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only --> <template> -<div :class="$style.root"> +<div v-if="!isDeleted" :class="$style.root"> <MkAvatar :class="$style.avatar" :user="note.user" link preview/> <div :class="$style.main"> <MkNoteHeader :class="$style.header" :note="note" :mini="true"/> @@ -15,6 +15,10 @@ SPDX-License-Identifier: AGPL-3.0-only </p> <div v-show="note.cw == null || showContent"> <MkSubNoteContent :hideFiles="hideFiles" :class="$style.text" :note="note" :expandAllCws="props.expandAllCws"/> + <div v-if="note.isSchedule" style="margin-top: 10px;"> + <MkButton :class="$style.button" inline @click.stop.prevent="editScheduleNote()"><i class="ti ti-eraser"></i> {{ i18n.ts.deleteAndEdit }}</MkButton> + <MkButton :class="$style.button" inline danger @click.stop.prevent="deleteScheduleNote()"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton> + </div> </div> </div> </div> @@ -24,18 +28,58 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> import { ref, watch } from 'vue'; import * as Misskey from 'misskey-js'; +import * as os from '@/os.js'; import MkNoteHeader from '@/components/MkNoteHeader.vue'; import MkSubNoteContent from '@/components/MkSubNoteContent.vue'; import MkCwButton from '@/components/MkCwButton.vue'; +import MkButton from '@/components/MkButton.vue'; import { defaultStore } from '@/store.js'; +import { i18n } from '@/i18n.js'; const props = defineProps<{ - note: Misskey.entities.Note; + note: Misskey.entities.Note & { + isSchedule? : boolean, + scheduledNoteId?: string + }; expandAllCws?: boolean; hideFiles?: boolean; }>(); let showContent = ref(defaultStore.state.uncollapseCW); +const isDeleted = ref(false); + +const emit = defineEmits<{ + (ev: 'editScheduleNote'): void; +}>(); + +async function deleteScheduleNote() { + const { canceled } = await os.confirm({ + type: 'warning', + text: i18n.ts.deleteConfirm, + okText: i18n.ts.delete, + cancelText: i18n.ts.cancel, + }); + if (canceled) return; + await os.apiWithDialog('notes/schedule/delete', { noteId: props.note.id }) + .then(() => { + isDeleted.value = true; + }); +} + +async function editScheduleNote() { + await os.apiWithDialog('notes/schedule/delete', { noteId: props.note.id }) + .then(() => { + isDeleted.value = true; + }); + + await os.post({ + initialNote: props.note, + renote: props.note.renote, + reply: props.note.reply, + channel: props.note.channel, + }); + emit('editScheduleNote'); +} watch(() => props.expandAllCws, (expandAllCws) => { if (expandAllCws !== showContent.value) showContent.value = expandAllCws; @@ -50,6 +94,11 @@ watch(() => props.expandAllCws, (expandAllCws) => { font-size: 0.95em; } +.button{ + margin-right: var(--margin); + margin-bottom: var(--margin); +} + .avatar { flex-shrink: 0; display: block; |