diff --git a/apps/client/src/scenes/result/ResultScene.tsx b/apps/client/src/scenes/result/ResultScene.tsx index 70efd8c..39116df 100644 --- a/apps/client/src/scenes/result/ResultScene.tsx +++ b/apps/client/src/scenes/result/ResultScene.tsx @@ -38,17 +38,12 @@ setActiveTab, } = useResultView(result); - if (!result) { - return ( -
結果を読み込み中...
- ); - } - + // hooksはearly returnより前に呼ぶ必要があるため,resultがnullの場合はフォールバック値を使用 const winnerTeamId = useMemo( () => - result.rankings.find((row) => row.rank === 1)?.teamId ?? - result.rankings[0]?.teamId, - [result.rankings], + result?.rankings.find((row) => row.rank === 1)?.teamId ?? + result?.rankings[0]?.teamId, + [result?.rankings], ); const winnerColor = useMemo( () => config.GAME_CONFIG.TEAM_COLORS[winnerTeamId ?? -1] ?? "#888888", @@ -60,19 +55,25 @@ const finalGridColors = useMemo( () => Array.from({ length: totalCells }, (_, index) => { - const teamId = result.finalGridColors?.[index]; + const teamId = result?.finalGridColors?.[index]; return typeof teamId === "number" ? teamId : -1; }), - [result.finalGridColors, totalCells], + [result?.finalGridColors, totalCells], ); + if (!result) { + return ( +
結果を読み込み中...
+ ); + } + return (
{ + onPointerDown={() => { if (isRankingVisible) { return; } diff --git a/apps/client/src/scenes/title/TitleScene.tsx b/apps/client/src/scenes/title/TitleScene.tsx index d261437..031e306 100644 --- a/apps/client/src/scenes/title/TitleScene.tsx +++ b/apps/client/src/scenes/title/TitleScene.tsx @@ -70,7 +70,7 @@ cursor: showForm ? "default" : "pointer", }} // 🌟 追加:背景のどこかをタップしたらフォームを表示する - onClick={() => { + onPointerDown={() => { if (!showForm) setShowForm(true); }} > diff --git a/test/.env.local.example b/test/.env.local.example new file mode 100644 index 0000000..07f7d1e --- /dev/null +++ b/test/.env.local.example @@ -0,0 +1,2 @@ +LOAD_TEST_SERVER_URL=http://localhost:3000 +LOAD_TEST_DEV_SERVER_URL=http://localhost:3000 diff --git a/test/package.json b/test/package.json index 4c26e28..7267ef3 100644 --- a/test/package.json +++ b/test/package.json @@ -3,6 +3,7 @@ "private": true, "type": "module", "scripts": { + "postinstall": "[ -f .env.local ] || cp .env.local.example .env.local", "start": "node --env-file=.env.local --loader ts-node/esm load-bot.ts" }, "dependencies": {