perf(frontend): reduce api requests for non-logged-in enviroment (#15001)
* wip * Update CHANGELOG.md * wip
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user