From 5161e32681dd88759f307ee9a71a7fde13ba5378 Mon Sep 17 00:00:00 2001 From: Frederic Pun Date: Thu, 5 Jul 2018 23:53:28 -0400 Subject: [PATCH] Start button works (replacing input text thingy) --- src/components/dashboard/DashboardContent.js | 10 ++-- .../dashboard/DashboardContentHeader.js | 48 ++++++++++++------- src/configurations.js | 8 ++-- src/redux/actions/ScoreboardActions.js | 5 +- src/redux/reducers/ScoreboardReducers.js | 2 +- 5 files changed, 47 insertions(+), 26 deletions(-) diff --git a/src/components/dashboard/DashboardContent.js b/src/components/dashboard/DashboardContent.js index 59043b5..9b3bb29 100644 --- a/src/components/dashboard/DashboardContent.js +++ b/src/components/dashboard/DashboardContent.js @@ -20,9 +20,13 @@ class DashboardContent extends React.Component { { choices.map((choice, key) => { const isIMG = choice.startsWith("**Image** "); - return
+ return
{ isIMG ? null: choice }
}) diff --git a/src/components/dashboard/DashboardContentHeader.js b/src/components/dashboard/DashboardContentHeader.js index 13d35b6..a315412 100644 --- a/src/components/dashboard/DashboardContentHeader.js +++ b/src/components/dashboard/DashboardContentHeader.js @@ -1,32 +1,47 @@ import React from 'react'; import {bindActionCreators} from "redux"; import {connect} from "react-redux"; +import { withRouter } from "react-router"; import {toggleModal} from "../../redux/actions/ModalActions"; import {deleteQuiz} from "../../redux/actions/QuizActions"; +import { setUrl } from '../../redux/actions/ScoreboardActions'; +import { DEFAULT_API_URL, DEFAULT_WEBSOCKET_URL } from '../../configurations'; -const url = 'https://howlplay-dashboard.azurewebsites.net/spinup'; -const DEFAULT_ADMIN_KEY = "HelloWorld"; +// const url = 'https://howlplay-dashboard.azurewebsites.net/spinup'; +const url = DEFAULT_API_URL + '/quizzes/codes/'; +// const DEFAULT_ADMIN_KEY = "HelloWorld"; -function startQuiz(quiz_details, admin_key) { - console.log(quiz_details); - console.log(admin_key); - let data = {details: quiz_details, key: admin_key}; - fetch(url, { - method: 'POST', - body: JSON.stringify(data) - }).then(data => { - console.log("Done"); - }) +function startQuiz(quizCode, setUrl, history) { + /* console.log(quiz_details); + console.log(admin_key); + let data = {details: quiz_details, key: admin_key}; + fetch(url, { + method: 'POST', + body: JSON.stringify(data) + }).then(data => { + console.log(data); + }) */ + fetch(url + quizCode) + .then(data => data.json()) + .then(json => { + if (json.url && (json.url.startsWith("ws://") || json.url.startsWith("wss://"))) { + setUrl(json); + } else { + console.log(`INVALID URL: Redirecting to '${DEFAULT_WEBSOCKET_URL}'`); + setUrl({ ...json, url: DEFAULT_WEBSOCKET_URL }); + } + history.push('/displayscore'); + }).catch( err => console.log("Error when joining game") ); } -const DashboardContentHeader = ({quiz, quizName, quizCode, groupName, toggleModal, deleteQuiz}) => +const DashboardContentHeader = ({quiz, quizName, quizCode, toggleModal, deleteQuiz, setUrl, history}) =>

{quizName}

Code: {quizCode}

- +
@@ -43,8 +58,9 @@ const mapStateToProps = (state) => { const mapDispatchToProps = dispatch => bindActionCreators({ toggleModal, - deleteQuiz + deleteQuiz, + setUrl }, dispatch); -export default connect(mapStateToProps, mapDispatchToProps) (DashboardContentHeader); +export default connect(mapStateToProps, mapDispatchToProps) (withRouter(DashboardContentHeader)); diff --git a/src/configurations.js b/src/configurations.js index 810a674..cf6c6ad 100644 --- a/src/configurations.js +++ b/src/configurations.js @@ -1,7 +1,7 @@ export const DEFAULT_QUIZ_TOKEN = "fc14f8d2-f49b-403e-a65a-20bce77df1b5"; -export const DEFAULT_WEBSOCKET_URL = "wss://howlplay-demo-game-server.azurewebsites.net"; -export const DEFAULT_API_URL = "https://howlplay-main-server.azurewebsites.net"; +// export const DEFAULT_WEBSOCKET_URL = "wss://howlplay-demo-game-server.azurewebsites.net"; +// export const DEFAULT_API_URL = "https://howlplay-main-server.azurewebsites.net"; // -// export const DEFAULT_WEBSOCKET_URL = "ws://localhost:9090"; -// export const DEFAULT_API_URL = "http://localhost:8080"; +export const DEFAULT_WEBSOCKET_URL = "ws://localhost:9090"; +export const DEFAULT_API_URL = "http://localhost:8080"; diff --git a/src/redux/actions/ScoreboardActions.js b/src/redux/actions/ScoreboardActions.js index ac375b2..a11d1b3 100644 --- a/src/redux/actions/ScoreboardActions.js +++ b/src/redux/actions/ScoreboardActions.js @@ -1,6 +1,7 @@ -export function setUrl(url) { +export function setUrl(data) { return { type : 'SET_URL', - payload : url + payload : data } } + diff --git a/src/redux/reducers/ScoreboardReducers.js b/src/redux/reducers/ScoreboardReducers.js index 5e60c62..697dbd0 100644 --- a/src/redux/reducers/ScoreboardReducers.js +++ b/src/redux/reducers/ScoreboardReducers.js @@ -1,6 +1,6 @@ const scoreboard_initial_state = { url : "", - id : "" + id : -1 }; export const ScoreboardReducer = (state=scoreboard_initial_state, action) => {