mirror of
https://codeberg.org/yeentown/barkey.git
synced 2025-04-28 09:36:56 +00:00
add DynamicNote to encapsulate MkNote / SkNote switching logic
This commit is contained in:
parent
cea77f3e2c
commit
9e833f724b
1 changed files with 49 additions and 0 deletions
49
packages/frontend/src/components/DynamicNote.vue
Normal file
49
packages/frontend/src/components/DynamicNote.vue
Normal file
|
@ -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>
|
Loading…
Add table
Reference in a new issue