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

ユーザーページのAllタブへのリンクが機能しない #1457

Closed
your-diary opened this issue Nov 23, 2023 · 3 comments
Closed

ユーザーページのAllタブへのリンクが機能しない #1457

your-diary opened this issue Nov 23, 2023 · 3 comments

Comments

@your-diary
Copy link

ユーザーページのDifficulty Pies, AllといったタブのURLを開いたとき、真っ白なページが表示されます

AchievementタブやAtCoder Pie Chartsタブは正常に機能します

macOS版Firefox, Chromeで再現

前は確実に動いていて、おそらく3ヶ月前〜1ヶ月前から動かなくなっています

再現方法

  1. 任意のユーザーのAllタブのページにアクセス(例: https://kenkoooo.com/atcoder/#/user/YourDiary?userPageTab=All)

  2. 真っ白なページが表示される

Workaround

  1. まず、Achievementタブのページにアクセス(例: https://kenkoooo.com/atcoder/#/user/YourDiary?userPageTab=Achievement)

  2. Allタブに手動で移動

  3. ちなみに、ここでブラウザをリロードすると真っ白な画面になる(Cmd+Shift+rによるforce refreshでも同様)

@hotate29
Copy link
Contributor

DifficultyPieChartコンポーネントでエラーが起きているようです。

内部ではcontestMap = useContestMap()という形でcontest.jsonの情報を受け取っています。useContestMap()contest.jsonを読み込んでいる間はundefinedを返すようになっており、contestMapがundefinedになる可能性があります。これを確認せずにcontestMap.get()を呼び出してしまい、エラーが発生。という流れのようです。

export const DifficultyPieChart: React.FC<Props> = (props) => {
const [onlyRated, setOnlyRated] = useState(true);
const contestMap = useContestMap();
const problemModels = useProblemModelMap();
const colorCount = new Map<RatingColor, number>();
const allSubmissions = useUserSubmission(props.userId) ?? [];
const submissions = allSubmissions.filter(
(submission) =>
isRatedContest(contestMap.get(submission.contest_id), 2) || !onlyRated
);

対応としては、他のコンポーネント(MyAccountPageなど)の例に倣って読み込み中の表示を出すようにするとかでしょうか。

この処理は b49bac1 で追加されたようです。PRのマージと発生時期が概ね一致していますね(デプロイまでの時間もあるので、即反映という事ではないとは思いますが)。

しかしこういうのってlintに引っかかったりしませんかね。手元のVSCodeでは警告が出たのですが、yarn lintしても何も出ませんでした。TypeScriptのlint事情はよく知らないのでちょっと調べてみます。

@kenkoooo
Copy link
Owner

@your-diary @hotate29 #1369 を一旦リバートしました!調査ありがとうございます!!!

@your-diary
Copy link
Author

@hotate29 調査ありがとうございます!
@kenkoooo ご対応ありがとうございます!

リンクが機能するようになったことが確認できたため、close致します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants