mirror of
https://github.com/hotomoe/hotomoe
synced 2024-12-01 08:18:14 +09:00
refactor
This commit is contained in:
parent
645dbebd86
commit
b80ec1fa3f
@ -57,7 +57,7 @@ const lib = emojilist.filter(x => x.category !== 'flags');
|
|||||||
|
|
||||||
const char2file = (char: string) => {
|
const char2file = (char: string) => {
|
||||||
let codes = Array.from(char).map(x => x.codePointAt(0)?.toString(16));
|
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('-');
|
return codes.filter(x => x && x.length).join('-');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -208,7 +208,7 @@ function exec() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (props.type === 'hashtag') {
|
} else if (props.type === 'hashtag') {
|
||||||
if (!props.q || props.q == '') {
|
if (!props.q || props.q === '') {
|
||||||
hashtags.value = JSON.parse(localStorage.getItem('hashtags') || '[]');
|
hashtags.value = JSON.parse(localStorage.getItem('hashtags') || '[]');
|
||||||
fetching.value = false;
|
fetching.value = false;
|
||||||
} else {
|
} else {
|
||||||
@ -231,7 +231,7 @@ function exec() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (props.type === 'emoji') {
|
} 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[];
|
emojis.value = defaultStore.state.recentlyUsedEmojis.map(emoji => emojiDb.find(e => e.emoji == emoji)).filter(x => x) as EmojiDef[];
|
||||||
return;
|
return;
|
||||||
@ -241,37 +241,37 @@ function exec() {
|
|||||||
const max = 30;
|
const max = 30;
|
||||||
|
|
||||||
emojiDb.some(x => {
|
emojiDb.some(x => {
|
||||||
if (x.name.startsWith(props.q || '') && !x.aliasOf && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
|
if (x.name.startsWith(props.q ?? '') && !x.aliasOf && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
|
||||||
return matched.length == max;
|
return matched.length === max;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (matched.length < max) {
|
if (matched.length < max) {
|
||||||
emojiDb.some(x => {
|
emojiDb.some(x => {
|
||||||
if (x.name.startsWith(props.q || '') && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
|
if (x.name.startsWith(props.q ?? '') && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
|
||||||
return matched.length == max;
|
return matched.length === max;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (matched.length < max) {
|
if (matched.length < max) {
|
||||||
emojiDb.some(x => {
|
emojiDb.some(x => {
|
||||||
if (x.name.includes(props.q || '') && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
|
if (x.name.includes(props.q ?? '') && !matched.some(y => y.emoji === x.emoji)) matched.push(x);
|
||||||
return matched.length == max;
|
return matched.length === max;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
emojis.value = matched;
|
emojis.value = matched;
|
||||||
} else if (props.type === 'mfmTag') {
|
} else if (props.type === 'mfmTag') {
|
||||||
if (!props.q || props.q == '') {
|
if (!props.q || props.q === '') {
|
||||||
mfmTags.value = MFM_TAGS;
|
mfmTags.value = MFM_TAGS;
|
||||||
return;
|
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) {
|
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) {
|
function onKeydown(e: KeyboardEvent) {
|
||||||
@ -348,7 +348,7 @@ function chooseUser() {
|
|||||||
|
|
||||||
onUpdated(() => {
|
onUpdated(() => {
|
||||||
setPosition();
|
setPosition();
|
||||||
items.value = suggests.value?.children || [];
|
items.value = suggests.value?.children ?? [];
|
||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -93,7 +93,7 @@ function requestRender() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function callback(response?: string) {
|
function callback(response?: string) {
|
||||||
emit('update:modelValue', typeof response == 'string' ? response : null);
|
emit('update:modelValue', typeof response === 'string' ? response : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -53,8 +53,8 @@ export default defineComponent({
|
|||||||
if (el.key == null && item.id) el.key = item.id;
|
if (el.key == null && item.id) el.key = item.id;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
i != props.items.length - 1 &&
|
i !== props.items.length - 1 &&
|
||||||
new Date(item.createdAt).getDate() != new Date(props.items[i + 1].createdAt).getDate()
|
new Date(item.createdAt).getDate() !== new Date(props.items[i + 1].createdAt).getDate()
|
||||||
) {
|
) {
|
||||||
const separator = h('div', {
|
const separator = h('div', {
|
||||||
class: 'separator',
|
class: 'separator',
|
||||||
|
@ -45,7 +45,7 @@ export default defineComponent({
|
|||||||
},
|
},
|
||||||
|
|
||||||
render() {
|
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 });
|
const ast = (this.plain ? mfm.parsePlain : mfm.parse)(this.text, { fnNameList: MFM_TAGS });
|
||||||
|
|
||||||
|
@ -6,33 +6,26 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts" setup>
|
||||||
import { defineComponent } from 'vue';
|
import { onMounted } from 'vue';
|
||||||
import XNotification from './notification.vue';
|
import XNotification from './notification.vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
|
||||||
export default defineComponent({
|
defineProps<{
|
||||||
components: {
|
notification: any; // TODO
|
||||||
XNotification
|
}>();
|
||||||
},
|
|
||||||
props: {
|
const emit = defineEmits<{
|
||||||
notification: {
|
(ev: 'closed'): void;
|
||||||
type: Object,
|
}>();
|
||||||
required: true
|
|
||||||
}
|
const zIndex = os.claimZIndex('high');
|
||||||
},
|
let showing = $ref(true);
|
||||||
emits: ['closed'],
|
|
||||||
data() {
|
onMounted(() => {
|
||||||
return {
|
window.setTimeout(() => {
|
||||||
showing: true,
|
showing = false;
|
||||||
zIndex: os.claimZIndex('high'),
|
}, 6000);
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
window.setTimeout(() => {
|
|
||||||
this.showing = false;
|
|
||||||
}, 6000);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -22,12 +22,12 @@ const emit = defineEmits<{
|
|||||||
(e: 'closed'): void;
|
(e: 'closed'): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const showing = ref(true);
|
|
||||||
const zIndex = os.claimZIndex('high');
|
const zIndex = os.claimZIndex('high');
|
||||||
|
let showing = $ref(true);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.setTimeout(() => {
|
window.setTimeout(() => {
|
||||||
showing.value = false;
|
showing = false;
|
||||||
}, 4000);
|
}, 4000);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -67,7 +67,7 @@ let tweetHeight = $ref(150);
|
|||||||
|
|
||||||
const requestUrl = new URL(props.url);
|
const requestUrl = new URL(props.url);
|
||||||
|
|
||||||
if (requestUrl.hostname == 'twitter.com') {
|
if (requestUrl.hostname === 'twitter.com') {
|
||||||
const m = requestUrl.pathname.match(/^\/.+\/status(?:es)?\/(\d+)/);
|
const m = requestUrl.pathname.match(/^\/.+\/status(?:es)?\/(\d+)/);
|
||||||
if (m) tweetId = m[1];
|
if (m) tweetId = m[1];
|
||||||
}
|
}
|
||||||
|
@ -544,7 +544,7 @@ export const uploads = ref<{
|
|||||||
}[]>([]);
|
}[]>([]);
|
||||||
|
|
||||||
export function upload(file: File, folder?: any, name?: string, keepOriginal: boolean = defaultStore.state.keepOriginalUploading): Promise<Misskey.entities.DriveFile> {
|
export function upload(file: File, folder?: any, name?: string, keepOriginal: boolean = defaultStore.state.keepOriginalUploading): Promise<Misskey.entities.DriveFile> {
|
||||||
if (folder && typeof folder == 'object') folder = folder.id;
|
if (folder && typeof folder === 'object') folder = folder.id;
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const id = Math.random().toString();
|
const id = Math.random().toString();
|
||||||
|
@ -123,8 +123,8 @@ export default defineComponent({
|
|||||||
|
|
||||||
const installedThemes = ref(getThemes());
|
const installedThemes = ref(getThemes());
|
||||||
const themes = computed(() => builtinThemes.concat(installedThemes.value));
|
const themes = computed(() => builtinThemes.concat(installedThemes.value));
|
||||||
const darkThemes = computed(() => themes.value.filter(t => t.base == 'dark' || t.kind == 'dark'));
|
const darkThemes = computed(() => themes.value.filter(t => t.base === 'dark' || t.kind === 'dark'));
|
||||||
const lightThemes = computed(() => themes.value.filter(t => t.base == 'light' || t.kind == 'light'));
|
const lightThemes = computed(() => themes.value.filter(t => t.base === 'light' || t.kind === 'light'));
|
||||||
const darkTheme = ColdDeviceStorage.ref('darkTheme');
|
const darkTheme = ColdDeviceStorage.ref('darkTheme');
|
||||||
const darkThemeId = computed({
|
const darkThemeId = computed({
|
||||||
get() {
|
get() {
|
||||||
|
Loading…
Reference in New Issue
Block a user