refactor
This commit is contained in:
		@@ -57,7 +57,7 @@ const lib = emojilist.filter(x => x.category !== 'flags');
 | 
			
		||||
 | 
			
		||||
const char2file = (char: string) => {
 | 
			
		||||
	let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16));
 | 
			
		||||
	if (!codes.includes('200d')) codes = codes.filter(x => x != 'fe0f');
 | 
			
		||||
	if (!codes.includes('200d')) codes = codes.filter(x => x !== 'fe0f');
 | 
			
		||||
	return codes.filter(x => x && x.length).join('-');
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -208,7 +208,7 @@ function exec() {
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	} else if (props.type === 'hashtag') {
 | 
			
		||||
		if (!props.q || props.q == '') {
 | 
			
		||||
		if (!props.q || props.q === '') {
 | 
			
		||||
			hashtags.value = JSON.parse(localStorage.getItem('hashtags') || '[]');
 | 
			
		||||
			fetching.value = false;
 | 
			
		||||
		} else {
 | 
			
		||||
@@ -231,7 +231,7 @@ function exec() {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else if (props.type === 'emoji') {
 | 
			
		||||
		if (!props.q || props.q == '') {
 | 
			
		||||
		if (!props.q || props.q === '') {
 | 
			
		||||
			// 最近使った絵文字をサジェスト
 | 
			
		||||
			emojis.value = defaultStore.state.recentlyUsedEmojis.map(emoji => emojiDb.find(e => e.emoji == emoji)).filter(x => x) as EmojiDef[];
 | 
			
		||||
			return;
 | 
			
		||||
@@ -241,37 +241,37 @@ function exec() {
 | 
			
		||||
		const max = 30;
 | 
			
		||||
 | 
			
		||||
		emojiDb.some(x => {
 | 
			
		||||
			if (x.name.startsWith(props.q || '') && !x.aliasOf && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
 | 
			
		||||
			return matched.length == max;
 | 
			
		||||
			if (x.name.startsWith(props.q ?? '') && !x.aliasOf && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
 | 
			
		||||
			return matched.length === max;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		if (matched.length < max) {
 | 
			
		||||
			emojiDb.some(x => {
 | 
			
		||||
				if (x.name.startsWith(props.q || '') && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
 | 
			
		||||
				return matched.length == max;
 | 
			
		||||
				if (x.name.startsWith(props.q ?? '') && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
 | 
			
		||||
				return matched.length === max;
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (matched.length < max) {
 | 
			
		||||
			emojiDb.some(x => {
 | 
			
		||||
				if (x.name.includes(props.q || '') && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
 | 
			
		||||
				return matched.length == max;
 | 
			
		||||
				if (x.name.includes(props.q ?? '') && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
 | 
			
		||||
				return matched.length === max;
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		emojis.value = matched;
 | 
			
		||||
	} else if (props.type === 'mfmTag') {
 | 
			
		||||
		if (!props.q || props.q == '') {
 | 
			
		||||
		if (!props.q || props.q === '') {
 | 
			
		||||
			mfmTags.value = MFM_TAGS;
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		mfmTags.value = MFM_TAGS.filter(tag => tag.startsWith(props.q || ''));
 | 
			
		||||
		mfmTags.value = MFM_TAGS.filter(tag => tag.startsWith(props.q ?? ''));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function onMousedown(e: Event) {
 | 
			
		||||
	if (!contains(rootEl.value, e.target) && (rootEl.value != e.target)) props.close();
 | 
			
		||||
	if (!contains(rootEl.value, e.target) && (rootEl.value !== e.target)) props.close();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function onKeydown(e: KeyboardEvent) {
 | 
			
		||||
@@ -348,7 +348,7 @@ function chooseUser() {
 | 
			
		||||
 | 
			
		||||
onUpdated(() => {
 | 
			
		||||
	setPosition();
 | 
			
		||||
	items.value = suggests.value?.children || [];
 | 
			
		||||
	items.value = suggests.value?.children ?? [];
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
 
 | 
			
		||||
@@ -93,7 +93,7 @@ function requestRender() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function callback(response?: string) {
 | 
			
		||||
	emit('update:modelValue', typeof response == 'string' ? response : null);
 | 
			
		||||
	emit('update:modelValue', typeof response === 'string' ? response : null);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
 
 | 
			
		||||
@@ -53,8 +53,8 @@ export default defineComponent({
 | 
			
		||||
			if (el.key == null && item.id) el.key = item.id;
 | 
			
		||||
 | 
			
		||||
			if (
 | 
			
		||||
				i != props.items.length - 1 &&
 | 
			
		||||
				new Date(item.createdAt).getDate() != new Date(props.items[i + 1].createdAt).getDate()
 | 
			
		||||
				i !== props.items.length - 1 &&
 | 
			
		||||
				new Date(item.createdAt).getDate() !== new Date(props.items[i + 1].createdAt).getDate()
 | 
			
		||||
			) {
 | 
			
		||||
				const separator = h('div', {
 | 
			
		||||
					class: 'separator',
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ export default defineComponent({
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	render() {
 | 
			
		||||
		if (this.text == null || this.text == '') return;
 | 
			
		||||
		if (this.text == null || this.text === '') return;
 | 
			
		||||
 | 
			
		||||
		const ast = (this.plain ? mfm.parsePlain : mfm.parse)(this.text, { fnNameList: MFM_TAGS });
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,33 +6,26 @@
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent } from 'vue';
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
import { onMounted } from 'vue';
 | 
			
		||||
import XNotification from './notification.vue';
 | 
			
		||||
import * as os from '@/os';
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
	components: {
 | 
			
		||||
		XNotification
 | 
			
		||||
	},
 | 
			
		||||
	props: {
 | 
			
		||||
		notification: {
 | 
			
		||||
			type: Object,
 | 
			
		||||
			required: true
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
	emits: ['closed'],
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			showing: true,
 | 
			
		||||
			zIndex: os.claimZIndex('high'),
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	mounted() {
 | 
			
		||||
		window.setTimeout(() => {
 | 
			
		||||
			this.showing = false;
 | 
			
		||||
		}, 6000);
 | 
			
		||||
	}
 | 
			
		||||
defineProps<{
 | 
			
		||||
	notification: any; // TODO
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits<{
 | 
			
		||||
	(ev: 'closed'): void;
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const zIndex = os.claimZIndex('high');
 | 
			
		||||
let showing = $ref(true);
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
	window.setTimeout(() => {
 | 
			
		||||
		showing = false;
 | 
			
		||||
	}, 6000);
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,12 +22,12 @@ const emit = defineEmits<{
 | 
			
		||||
	(e: 'closed'): void;
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const showing = ref(true);
 | 
			
		||||
const zIndex = os.claimZIndex('high');
 | 
			
		||||
let showing = $ref(true);
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
	window.setTimeout(() => {
 | 
			
		||||
		showing.value = false;
 | 
			
		||||
		showing = false;
 | 
			
		||||
	}, 4000);
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ let tweetHeight = $ref(150);
 | 
			
		||||
 | 
			
		||||
const requestUrl = new URL(props.url);
 | 
			
		||||
 | 
			
		||||
if (requestUrl.hostname == 'twitter.com') {
 | 
			
		||||
if (requestUrl.hostname === 'twitter.com') {
 | 
			
		||||
	const m = requestUrl.pathname.match(/^\/.+\/status(?:es)?\/(\d+)/);
 | 
			
		||||
	if (m) tweetId = m[1];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user