summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/DynamicNote.vue
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-03-02 18:56:44 +0000
committerHazelnoot <acomputerdog@gmail.com>2025-03-02 18:56:44 +0000
commit141bce2be7a5b8756d58e2d4e92d1f6180629da4 (patch)
treec73d3940938e4fd8cc515377f9334c4a48679c7b /packages/frontend/src/components/DynamicNote.vue
parentmerge: Remove assertActivityMatchesUrls in favor of three-way same-authority ... (diff)
parentremove `fileId` from `importCustomEmojis` log (diff)
downloadsharkey-141bce2be7a5b8756d58e2d4e92d1f6180629da4.tar.gz
sharkey-141bce2be7a5b8756d58e2d4e92d1f6180629da4.tar.bz2
sharkey-141bce2be7a5b8756d58e2d4e92d1f6180629da4.zip
merge: Add/fix moderation logs for many endpoints (resolves #911 and #969) (!925)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/925 Closes #911 and #969 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/frontend/src/components/DynamicNote.vue')
-rw-r--r--packages/frontend/src/components/DynamicNote.vue49
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/frontend/src/components/DynamicNote.vue b/packages/frontend/src/components/DynamicNote.vue
new file mode 100644
index 0000000000..6703099591
--- /dev/null
+++ b/packages/frontend/src/components/DynamicNote.vue
@@ -0,0 +1,49 @@
+<!--
+SPDX-FileCopyrightText: hazelnoot and other Sharkey contributors
+SPDX-License-Identifier: AGPL-3.0-only
+-->
+
+<template>
+<XNote
+ ref="rootEl"
+ :note="note"
+ :pinned="pinned"
+ :mock="mock"
+ :withHardMute="withHardMute"
+ @reaction="emoji => emit('reaction', emoji)"
+ @removeReaction="emoji => emit('removeReaction', emoji)"
+/>
+</template>
+
+<script setup lang="ts">
+import * as Misskey from 'misskey-js';
+import { computed, defineAsyncComponent, shallowRef } from 'vue';
+import type { ComponentExposed } from 'vue-component-type-helpers';
+import type MkNote from '@/components/MkNote.vue';
+import type SkNote from '@/components/SkNote.vue';
+import { defaultStore } from '@/store';
+
+const XNote = computed(() =>
+ defineAsyncComponent(() =>
+ defaultStore.reactiveState.noteDesign.value === 'misskey'
+ ? import('@/components/MkNote.vue')
+ : import('@/components/SkNote.vue'),
+ ),
+);
+
+const rootEl = shallowRef<ComponentExposed<typeof MkNote | typeof SkNote>>();
+
+defineExpose({ rootEl });
+
+defineProps<{
+ note: Misskey.entities.Note;
+ pinned?: boolean;
+ mock?: boolean;
+ withHardMute?: boolean;
+}>();
+
+const emit = defineEmits<{
+ (ev: 'reaction', emoji: string): void;
+ (ev: 'removeReaction', emoji: string): void;
+}>();
+</script>