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
	 syuilo
					syuilo