Closed your-diary closed 7 months ago
DifficultyPieChartコンポーネントでエラーが起きているようです。
内部ではcontestMap = useContestMap()
という形でcontest.json
の情報を受け取っています。useContestMap()
はcontest.json
を読み込んでいる間はundefinedを返すようになっており、contestMap
がundefinedになる可能性があります。これを確認せずにcontestMap.get()
を呼び出してしまい、エラーが発生。という流れのようです。
対応としては、他のコンポーネント(MyAccountPageなど)の例に倣って読み込み中の表示を出すようにするとかでしょうか。
この処理は b49bac15b970cb613a734c063240be5711d12d57 で追加されたようです。PRのマージと発生時期が概ね一致していますね(デプロイまでの時間もあるので、即反映という事ではないとは思いますが)。
しかしこういうのってlintに引っかかったりしませんかね。手元のVSCodeでは警告が出たのですが、yarn lint
しても何も出ませんでした。TypeScriptのlint事情はよく知らないのでちょっと調べてみます。
@your-diary @hotate29 #1369 を一旦リバートしました!調査ありがとうございます!!!
@hotate29 調査ありがとうございます! @kenkoooo ご対応ありがとうございます!
リンクが機能するようになったことが確認できたため、close致します。
ユーザーページの
Difficulty Pies
,All
といったタブのURLを開いたとき、真っ白なページが表示されますAchievement
タブやAtCoder Pie Charts
タブは正常に機能しますmacOS版Firefox, Chromeで再現
前は確実に動いていて、おそらく3ヶ月前〜1ヶ月前から動かなくなっています
再現方法
任意のユーザーの
All
タブのページにアクセス(例: https://kenkoooo.com/atcoder/#/user/YourDiary?userPageTab=All)真っ白なページが表示される
Workaround
まず、
Achievement
タブのページにアクセス(例: https://kenkoooo.com/atcoder/#/user/YourDiary?userPageTab=Achievement)All
タブに手動で移動ちなみに、ここでブラウザをリロードすると真っ白な画面になる(
Cmd+Shift+r
によるforce refreshでも同様)