1
0

Chat box coming along

Signed-off-by: James Ketrenos <james.p.ketrenos@intel.com>
This commit is contained in:
James Ketrenos 2020-04-24 18:18:41 -07:00
parent 41e7ef9aa0
commit 28746f41c9
5 changed files with 90 additions and 10 deletions

View File

@ -36,6 +36,7 @@
"react-bootstrap": "^1.0.0-beta.16",
"react-date-range": "^1.0.0-beta",
"react-markdown": "^4.2.2",
"react-moment": "^0.9.7",
"react-router-dom": "^5.0.1",
"react-scroll": "^1.7.14",
"react-syntax-highlighter": "^11.0.2",

View File

@ -113,6 +113,7 @@ router.post("/", (req, res/*, next*/) => {
console.log("POST games/");
const game = {
startTime: Date.now(),
state: "lobby", /* lobby, in-game, finished */
tiles: [],
pips: [],
borders: [],
@ -123,6 +124,7 @@ router.post("/", (req, res/*, next*/) => {
{ player: "W", roads: 15, cities: 4, settlements: 5, points: 0 }
],
developmentCards: assetData.developmentCards.slice(),
dice: [ 0, 0 ],
sheep: 19,
ore: 19,
wool: 19,
@ -130,6 +132,7 @@ router.post("/", (req, res/*, next*/) => {
wheat: 19,
longestRoad: null,
largestArmy: null,
chat: [ { from: "R", date: Date.now(), message: "Hello, world!" } ],
id: crypto.randomBytes(20).toString('hex')
};

View File

@ -42,6 +42,24 @@
filter: brightness(150%);
}
.Chat {
right: 0;
bottom: 0;
padding: 0.5em;
width: 30vmax;
display: inline-block;
opacity: 0.7;
}
.Chat > * {
width: 100%;
}
.Chat > :first-child {
height: 10vh;
overflow-y: scroll;
}
.Stack > *:not(:first-child) {
margin-left: -4.5em;
}

View File

@ -1,6 +1,14 @@
import React, { useState, useEffect } from "react";
import "./Board.css";
import history from "./history.js";
import Paper from '@material-ui/core/Paper';
import TextField from '@material-ui/core/TextField';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemText from '@material-ui/core/ListItemText';
import ListItemAvatar from '@material-ui/core/ListItemAvatar';
import Moment from 'react-moment';
import moment from 'moment';
const hexagonRatio = 1.1547005,
tileHeight = 0.16,
@ -171,6 +179,51 @@ class Resource extends React.Component {
}
};
class Chat extends React.Component {
constructor(props) {
super(props);
this.chatInput = this.chatInput.bind(this);
}
chatInput(event) {
console.log(event.target.value);
}
chatKeyPress(event) {
if (event.key == "Enter") {
console.log(`Send: ${event.target.value}`);
event.target.value = "";
}
}
render() {
//this.props.game.messages
const messages =[ { from: "R", date: Date.now(), message: "Hello, world!" } ].map((item, index) => {
const timestamp = moment(item.date).fromNow();
return (
<ListItem key={`msg-${index}`}>
<ListItemAvatar>
{item.from}
</ListItemAvatar>
<ListItemText primary={item.message} secondary={timestamp} />
</ListItem>
);
});
return (
<Paper className="Chat">
<List>
{ messages }
</List>
<TextField id="chat-input"
onChange={this.chatInput}
onKeyPress={this.chatKeyPress}
label={(<Moment format="h:mm:ss" interval={1000}/>)} variant="outlined"/>
</Paper>
);
}
}
class Board extends React.Component {
constructor(props) {
super(props);
@ -196,7 +249,20 @@ class Board extends React.Component {
this.mouse = { x: 0, y: 0 };
this.radius = 0.317;
const params = {}
this.game = null;
this.pips = [];
this.tiles = [];
this.borders = [];
this.table = null;
this.closest = {
info: {},
tile: null,
road: null,
tradeToken: null,
settlement: null
};
const params = {};
if (props.match.params.id) {
console.log(`Loading game: ${props.match.params.id}`);
@ -233,14 +299,6 @@ class Board extends React.Component {
this.tiles = Tiles(this);
this.table = Table(this);
this.closest = {
info: {},
tile: null,
road: null,
tradeToken: null,
settlement: null
};
this.borders = this.game.borders.map((file) => {
return Border(this, file);
});
@ -799,6 +857,7 @@ class Board extends React.Component {
<div className="Board" ref={el => this.el = el}>
<canvas className="Display" ref={el => this.canvas = el}></canvas>
<div className="Cards" ref={el => this.cards = el}>
<Chat/>
<div>In hand</div>
<div className="Hand">
<Resource type="wood" count={this.state.wood}/>

View File

@ -14,7 +14,6 @@ console.log(`Using base: ${base}`);
proxy[`${base}/`] = {
target: "http://localhost:8911",
bypass: function(req, res, proxyOptions) {
console.log(`Proxy test: ${req.url}`);
if ((req.url.indexOf(`${base}/assets`) == 0) ||
(req.url.indexOf(`${base}/dist`) == 0)) {
return req.url.replace(base, "");