@@ -7,13 +7,17 @@ import OnlineLobbyDialog from "./OnlineLobby";
77import { useGameStore } from "../store/gameStore" ;
88import { handleOnlinePlay } from "../services/gameService" ;
99import SinglePlayerRoomConfigDialog from "../singleplayer/components/SinglePlayerRoomConfigDialog" ;
10+ import { MatchmakingLobby } from "../multiplayer/matchmaking" ;
11+ import { Dialog } from "./ui" ;
1012import { useState } from "react" ;
13+ import { loginWithGoogle } from "../services/firebase" ;
1114
1215export default function Home ( ) {
1316 const navigate = useNavigate ( ) ;
1417 const { user } = useAuth ( ) ;
1518
1619 const [ isDialogOpen , setIsDialogOpen ] = useState ( false ) ;
20+ const [ isQuickMatchOpen , setIsQuickMatchOpen ] = useState ( false ) ;
1721
1822 const { isOnlineDialogOpen, isOnboarded, setIsOnlineDialogOpen } =
1923 useGameStore ( ) ;
@@ -26,6 +30,18 @@ export default function Home() {
2630 handleOnlinePlay ( user ) ;
2731 } ;
2832
33+ const handleQuickMatchClick = async ( ) => {
34+ if ( ! user ) {
35+ const { user : newUser } = await loginWithGoogle ( ) ;
36+ if ( newUser ) {
37+ setIsQuickMatchOpen ( true ) ;
38+ } else {
39+ // Login failed
40+ }
41+ }
42+ setIsQuickMatchOpen ( true ) ;
43+ } ;
44+
2945 const handleConfirm = ( ) => {
3046 setIsDialogOpen ( false ) ;
3147 navigate ( "/room" ) ;
@@ -84,7 +100,10 @@ export default function Home() {
84100 < Button variant = "blue" onClick = { handlePlayClick } >
85101 Play
86102 </ Button >
87- < Button onClick = { handleOnlinePlayClick } > Online</ Button >
103+ < Button variant = "green" onClick = { handleQuickMatchClick } >
104+ Quick Match
105+ </ Button >
106+ < Button onClick = { handleOnlinePlayClick } > Online Rooms</ Button >
88107 </ div >
89108
90109 < SinglePlayerRoomConfigDialog
@@ -98,6 +117,14 @@ export default function Home() {
98117 isOpen = { isOnlineDialogOpen }
99118 onClose = { ( ) => setIsOnlineDialogOpen ( false ) }
100119 />
120+
121+ < Dialog
122+ isOpen = { isQuickMatchOpen }
123+ onClose = { ( ) => setIsQuickMatchOpen ( false ) }
124+ title = "Quick Match"
125+ >
126+ < MatchmakingLobby onClose = { ( ) => setIsQuickMatchOpen ( false ) } />
127+ </ Dialog >
101128 </ div >
102129 ) ;
103130}
0 commit comments