perf(frontend): reduce api requests for non-logged-in enviroment (#15001)

* wip

* Update CHANGELOG.md

* wip
This commit is contained in:
syuilo
2024-11-21 07:58:34 +09:00
committed by GitHub
parent 4603ab67bb
commit f0c3a4cc0b
7 changed files with 77 additions and 7 deletions

View File

@@ -39,6 +39,7 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
import MkHorizontalSwipe from '@/components/MkHorizontalSwipe.vue';
import { getServerContext } from '@/server-context.js';
const XHome = defineAsyncComponent(() => import('./home.vue'));
const XTimeline = defineAsyncComponent(() => import('./index.timeline.vue'));
@@ -52,6 +53,8 @@ const XFlashs = defineAsyncComponent(() => import('./flashs.vue'));
const XGallery = defineAsyncComponent(() => import('./gallery.vue'));
const XRaw = defineAsyncComponent(() => import('./raw.vue'));
const CTX_USER = getServerContext('user');
const props = withDefaults(defineProps<{
acct: string;
page?: string;
@@ -61,13 +64,24 @@ const props = withDefaults(defineProps<{
const tab = ref(props.page);
const user = ref<null | Misskey.entities.UserDetailed>(null);
const user = ref<null | Misskey.entities.UserDetailed>(CTX_USER);
const error = ref<any>(null);
function fetchUser(): void {
if (props.acct == null) return;
const { username, host } = Misskey.acct.parse(props.acct);
if (CTX_USER && CTX_USER.username === username && CTX_USER.host === host) {
user.value = CTX_USER;
return;
}
user.value = null;
misskeyApi('users/show', Misskey.acct.parse(props.acct)).then(u => {
misskeyApi('users/show', {
username,
host,
}).then(u => {
user.value = u;
}).catch(err => {
error.value = err;