summaryrefslogtreecommitdiff
path: root/packages/client/src/components
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-07-16 13:14:16 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-07-16 13:14:16 +0900
commit4f9b03a9976e1622d0d2eb3fcd46773212427cd9 (patch)
treebb1a66c819a40dc2180f79e7b069f0c191a7cf21 /packages/client/src/components
parentchore(client): tweak style (diff)
downloadsharkey-4f9b03a9976e1622d0d2eb3fcd46773212427cd9.tar.gz
sharkey-4f9b03a9976e1622d0d2eb3fcd46773212427cd9.tar.bz2
sharkey-4f9b03a9976e1622d0d2eb3fcd46773212427cd9.zip
refactor(client): use setup syntax
Diffstat (limited to 'packages/client/src/components')
-rw-r--r--packages/client/src/components/global/emoji.vue77
1 files changed, 25 insertions, 52 deletions
diff --git a/packages/client/src/components/global/emoji.vue b/packages/client/src/components/global/emoji.vue
index 23cb649f7a..106778aee2 100644
--- a/packages/client/src/components/global/emoji.vue
+++ b/packages/client/src/components/global/emoji.vue
@@ -1,68 +1,41 @@
-char2filePath<template>
+<template>
<img v-if="customEmoji" class="mk-emoji custom" :class="{ normal, noStyle }" :src="url" :alt="alt" :title="alt" decoding="async"/>
<img v-else-if="char && !useOsNativeEmojis" class="mk-emoji" :src="url" :alt="alt" :title="alt" decoding="async"/>
<span v-else-if="char && useOsNativeEmojis">{{ char }}</span>
<span v-else>{{ emoji }}</span>
</template>
-<script lang="ts">
-import { computed, defineComponent, ref, watch } from 'vue';
+<script lang="ts" setup>
+import { computed, ref, watch } from 'vue';
+import { CustomEmoji } from 'misskey-js/built/entities';
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
import { char2filePath } from '@/scripts/twemoji-base';
import { defaultStore } from '@/store';
import { instance } from '@/instance';
-export default defineComponent({
- props: {
- emoji: {
- type: String,
- required: true
- },
- normal: {
- type: Boolean,
- required: false,
- default: false
- },
- noStyle: {
- type: Boolean,
- required: false,
- default: false
- },
- customEmojis: {
- required: false
- },
- isReaction: {
- type: Boolean,
- default: false
- },
- },
+const props = defineProps<{
+ emoji: string;
+ normal?: boolean;
+ noStyle?: boolean;
+ customEmojis?: CustomEmoji[];
+ isReaction?: boolean;
+}>();
- setup(props) {
- const isCustom = computed(() => props.emoji.startsWith(':'));
- const char = computed(() => isCustom.value ? null : props.emoji);
- const useOsNativeEmojis = computed(() => defaultStore.state.useOsNativeEmojis && !props.isReaction);
- const ce = computed(() => props.customEmojis || instance.emojis || []);
- const customEmoji = computed(() => isCustom.value ? ce.value.find(x => x.name === props.emoji.substr(1, props.emoji.length - 2)) : null);
- const url = computed(() => {
- if (char.value) {
- return char2filePath(char.value);
- } else {
- return defaultStore.state.disableShowingAnimatedImages
- ? getStaticImageUrl(customEmoji.value.url)
- : customEmoji.value.url;
- }
- });
- const alt = computed(() => customEmoji.value ? `:${customEmoji.value.name}:` : char.value);
-
- return {
- url,
- char,
- alt,
- customEmoji,
- useOsNativeEmojis,
- };
- },
+const isCustom = computed(() => props.emoji.startsWith(':'));
+const char = computed(() => isCustom.value ? null : props.emoji);
+const useOsNativeEmojis = computed(() => defaultStore.state.useOsNativeEmojis && !props.isReaction);
+const ce = computed(() => props.customEmojis ?? instance.emojis ?? []);
+const customEmoji = computed(() => isCustom.value ? ce.value.find(x => x.name === props.emoji.substr(1, props.emoji.length - 2)) : null);
+const url = computed(() => {
+ if (char.value) {
+ return char2filePath(char.value);
+ } else {
+ return defaultStore.state.disableShowingAnimatedImages
+ ? getStaticImageUrl(customEmoji.value.url)
+ : customEmoji.value.url;
+ }
});
+const alt = computed(() => customEmoji.value ? `:${customEmoji.value.name}:` : char.value);
</script>
<style lang="scss" scoped>