Newer
Older
PixelPaintWar / apps / client / src / app.tsx
import { socketManager } from "@client/network/SocketManager";
import { useAppFlow } from "./hooks/useAppFlow";

// 画面遷移先シーンコンポーネント群
import { TitleScene } from "./scenes/title/TitleScene";
import { LobbyScene } from "./scenes/lobby/LobbyScene";
import { GameScene } from "./scenes/game/GameScene";

import { appConsts } from "@repo/shared";

export default function App() {
  const { scenePhase, room, myId } = useAppFlow();

  // タイトル画面分岐
  if (scenePhase === appConsts.ScenePhase.TITLE) {
    return <TitleScene onJoin={(payload) => socketManager.title.joinRoom(payload)} />;
  }
  
  // ロビー画面分岐
  if (scenePhase === appConsts.ScenePhase.LOBBY) {
    return <LobbyScene room={room} myId={myId} onStart={() => socketManager.lobby.startGame()} />;
  }

  // プレイ画面分岐
  return <GameScene myId={myId} />;
}