Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

アドレスバーに入力など直接ユーザのプロフィール画面を開くと概要タブの中身が描画されない #15032

Closed
1 task
samunohito opened this issue Nov 22, 2024 · 7 comments · Fixed by #15033
Assignees
Labels
🐛Bug Unexpected behavior

Comments

@samunohito
Copy link
Member

💡 Summary

こんな感じになります。
Image

コンソールを見るとエラーが出ていました。
Image

🥰 Expected Behavior

描画される

🤬 Actual Behavior

されない

📝 Steps to Reproduce

サーバに未ログイン状態でプロフィール画面を開く

💻 Frontend Environment

* Model and OS of the device(s): any
* Browser: any
* Server URL: any
* Misskey: 2024.11.0 (以前からかは未確認)

🛰 Backend Environment (for server admin)

-

Do you want to address this bug yourself?

  • Yes, I will patch the bug myself and send a pull request
@samunohito samunohito added the ⚠️bug? This might be a bug label Nov 22, 2024
@samunohito
Copy link
Member Author

Image
赤線の部分でエラーになっています。
messageToFollowerというキーを使っている個所は1つしかなく、そのあたりのガード処理が甘い可能性が高いです

<div v-if="user.followedMessage != null" class="followedMessage">
<MkFukidashi class="fukidashi" :tail="narrow ? 'none' : 'left'" negativeMargin shadow>
<div class="messageHeader">{{ i18n.ts.messageToFollower }}</div>
<div><MkSparkle><Mfm :plain="true" :text="user.followedMessage" :author="user"/></MkSparkle></div>
</MkFukidashi>
</div>
<div v-if="user.roles.length > 0" class="roles">
<span v-for="role in user.roles" :key="role.id" v-tooltip="role.description" class="role" :style="{ '--color': role.color }">
<MkA v-adaptive-bg :to="`/roles/${role.id}`">
<img v-if="role.iconUrl" style="height: 1.3em; vertical-align: -22%;" :src="role.iconUrl"/>
{{ role.name }}
</MkA>
</span>
</div>

@samunohito
Copy link
Member Author

Image
2つ目はこのあたりで、user.birthday.splitしてるところは同様に1箇所しかなく、以下である可能性が高いです

onMounted(() => {
window.requestAnimationFrame(parallaxLoop);
narrow.value = rootEl.value!.clientWidth < 1000;
if (props.user.birthday) {
const m = new Date().getMonth() + 1;
const d = new Date().getDate();
const bm = parseInt(props.user.birthday.split('-')[1]);
const bd = parseInt(props.user.birthday.split('-')[2]);
if (m === bm && d === bd) {
confetti({
duration: 1000 * 4,
});
}
}
nextTick(() => {
adjustMemoTextarea();
});
});

@samunohito
Copy link
Member Author

2つ目は1年近くコードが変わっておらず、自分が見る限り問題もなさそうです。
1つ目により描画が止まり、それに引きずられて発生しているものと推測します。

@samunohito
Copy link
Member Author

samunohito commented Nov 22, 2024

(コミットログ確認中…)
バックエンド側の可能性も出てきた

@samunohito
Copy link
Member Author

samunohito commented Nov 22, 2024

UserLiteはrolesを持たないので、プロフィール画面を描画するにはデータ不足になってしまう

return await reply.view('user', {
user, profile, me,
avatarUrl: user.avatarUrl ?? this.userEntityService.getIdenticonUrl(user),
sub: request.params.sub,
...await this.generateCommonPugData(this.meta),
clientCtx: htmlSafeJsonStringify({
user: _user,
}),
});

@syuilo
Copy link
Member

syuilo commented Nov 22, 2024

🤯

@samunohito
Copy link
Member Author

packages/frontend/src/pages/user/home.vueはUserDetailed前提なので、上記の取得処理もそれに合わせる必要がありそうです

@samunohito samunohito added this to the v2024.11.1? milestone Nov 23, 2024
@samunohito samunohito self-assigned this Nov 23, 2024
@samunohito samunohito changed the title 非ログイン状態でユーザのプロフィール画面を開くと概要タブの中身が描画されない アドレスバーに入力など直接ユーザのプロフィール画面を開くと概要タブの中身が描画されない Nov 23, 2024
@kakkokari-gtyih kakkokari-gtyih removed this from the v2024.11.1? milestone Nov 23, 2024
@samunohito samunohito added 🐛Bug Unexpected behavior and removed ⚠️bug? This might be a bug labels Nov 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛Bug Unexpected behavior
Projects
None yet
3 participants