Merge branch 'develop'
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								sports-matcher/public/chief.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sports-matcher/public/chief.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 244 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sports-matcher/public/freeman.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sports-matcher/public/freeman.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 69 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								sports-matcher/public/shogun.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								sports-matcher/public/shogun.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 54 KiB  | 
							
								
								
									
										18
									
								
								sports-matcher/src/Chat.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								sports-matcher/src/Chat.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					/* Please direct questions to Hansi Xu (Wallace LaWall on Discord) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import './chats.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Chat extends React.Component {
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div class="chatbubble-container">                    
 | 
				
			||||||
 | 
					                        <div class= {this.props.side === "left" ? "chatbubble left": "chatbubble right"}>
 | 
				
			||||||
 | 
					                            {this.props.message}
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Chat;
 | 
				
			||||||
							
								
								
									
										113
									
								
								sports-matcher/src/ChatWindow.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								sports-matcher/src/ChatWindow.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
				
			|||||||
 | 
					/* Please direct questions to Hansi Xu (Wallace LaWall on Discord) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import './chats.css'
 | 
				
			||||||
 | 
					import Chat from './Chat'
 | 
				
			||||||
 | 
					import Contact from './Contact'
 | 
				
			||||||
 | 
					import { useState } from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ChatWindow extends React.Component {
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div class="chatcomponent">
 | 
				
			||||||
 | 
					                <UserList />
 | 
				
			||||||
 | 
					                <MessageList />
 | 
				
			||||||
 | 
					                <ChatInput />
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class UserList extends React.Component {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div class="contactlist">
 | 
				
			||||||
 | 
					                    <Contact pfpsrc="./chief.jpg" name="Master Chief"/>
 | 
				
			||||||
 | 
					                    <Contact pfpsrc="./freeman.jpg" name="Gordon Freeman" />
 | 
				
			||||||
 | 
					                    <Contact pfpsrc="./shogun.jpg" name="Raiden Shogun" selected="true" />
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MessageList extends React.Component {
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div class="messagelist">
 | 
				
			||||||
 | 
					                <Chat message="Got time for tennis this week, Raiden?" side="right"/>
 | 
				
			||||||
 | 
					                <Chat message="Foolish question. If I do not even have free time, How am I to pursue eternity and fulfill my promise to the people of Inazuma?" side="left" />
 | 
				
			||||||
 | 
					                <Chat message="Aiight, see you at 4" side="right" />
 | 
				
			||||||
 | 
					                <Chat message="As you wish." side="left" />
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// class ChatWindow extends React.Component {
 | 
				
			||||||
 | 
					//     render() {
 | 
				
			||||||
 | 
					//         return (
 | 
				
			||||||
 | 
					//             <div>
 | 
				
			||||||
 | 
					//                 <ChatUserList />
 | 
				
			||||||
 | 
					//                 {/* <MessageList /> */}
 | 
				
			||||||
 | 
					//             </div>
 | 
				
			||||||
 | 
					//         )
 | 
				
			||||||
 | 
					//     }
 | 
				
			||||||
 | 
					// }
 | 
				
			||||||
 | 
					const ChatInput = () => {
 | 
				
			||||||
 | 
					    const [message, setMessage] = useState( '' );
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    // const onKeyPress = (e) => {
 | 
				
			||||||
 | 
					    //     // if(e.key === 'Enter'){
 | 
				
			||||||
 | 
					    //     //     e.preventDefault(); // Ensure it is only this code that runs
 | 
				
			||||||
 | 
					    //     //     setMessage("")
 | 
				
			||||||
 | 
					    //     // }
 | 
				
			||||||
 | 
					    // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onKeyDown = (e) => {
 | 
				
			||||||
 | 
					        const keyCode = e.which || e.keyCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // 13 represents the Enter key
 | 
				
			||||||
 | 
					        if (keyCode === 13 && !e.shiftKey) {
 | 
				
			||||||
 | 
					            e.preventDefault();
 | 
				
			||||||
 | 
					            setMessage("")
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return (
 | 
				
			||||||
 | 
					        // onKeyPress={(e) => onKeyPress(e)}
 | 
				
			||||||
 | 
					      <div>
 | 
				
			||||||
 | 
					        <textarea
 | 
				
			||||||
 | 
					           class="chatinput"
 | 
				
			||||||
 | 
					           value={message}
 | 
				
			||||||
 | 
					           placeholder="Press ENTER to send, SHIFT + ENTER for new line"
 | 
				
			||||||
 | 
					           onChange={e => setMessage(e.target.value)}
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					           onKeyDown={onKeyDown}
 | 
				
			||||||
 | 
					         />
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					class ChatInput2 extends React.Component {
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    constructor(props) {
 | 
				
			||||||
 | 
					        super(props)
 | 
				
			||||||
 | 
					        this.setState({inputVal : ""})
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    handleUserInput(e) {
 | 
				
			||||||
 | 
					        this.setState(this.setState({inputVal : e.target.value}));
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (<textarea class="chatinput" placeholder="Press ENTER to send, Ctrl + ENTER for new line"
 | 
				
			||||||
 | 
					                onKeyPress={(e)=>this.onKeyPress(e)} value="" onChange={(e) => this.handleUserInput(e)} />)
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    onKeyPress(e) {
 | 
				
			||||||
 | 
					        if(e.key === 'Enter'){
 | 
				
			||||||
 | 
					            e.preventDefault(); // Ensure it is only this code that runs
 | 
				
			||||||
 | 
					            this.setState({inputVal : ""});
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					export default ChatWindow;
 | 
				
			||||||
							
								
								
									
										38
									
								
								sports-matcher/src/Contact.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								sports-matcher/src/Contact.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					/* Please direct questions to Hansi Xu (Wallace LaWall on Discord) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import React from 'react';
 | 
				
			||||||
 | 
					import './chats.css';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Contact extends React.Component {
 | 
				
			||||||
 | 
					    constructor(props) {
 | 
				
			||||||
 | 
					        super(props)
 | 
				
			||||||
 | 
					        this.state = {
 | 
				
			||||||
 | 
					            selected : this.props.selected
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    onClick() {
 | 
				
			||||||
 | 
					        // This toggling of the contact selection is for demo purposes only
 | 
				
			||||||
 | 
					        // Once backend is implemented, only one contact can be selected
 | 
				
			||||||
 | 
					        if (this.state.selected === "false") {
 | 
				
			||||||
 | 
					            this.setState({selected : "true"})
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            this.setState({selected : "false"})
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    render() {
 | 
				
			||||||
 | 
					        return (
 | 
				
			||||||
 | 
					            <div class={this.state.selected === "true" ? "contact dark" : "contact"}>
 | 
				
			||||||
 | 
					                        <div class="profilepiccontainer">
 | 
				
			||||||
 | 
					                            <img src={this.props.pfpsrc} class="profilepic" onClick={() => this.onClick()} 
 | 
				
			||||||
 | 
					                                alt="profile" />
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                        <div class="profilenamecontainer">
 | 
				
			||||||
 | 
					                            <div class="profilename" onClick={() => this.onClick()}>{this.props.name}</div>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default Contact;
 | 
				
			||||||
							
								
								
									
										108
									
								
								sports-matcher/src/chats.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								sports-matcher/src/chats.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,108 @@
 | 
				
			|||||||
 | 
					/* Please direct questions to Hansi Xu (Wallace LaWall on Discord) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.chatcomponent > * {
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.contact {
 | 
				
			||||||
 | 
					    border-style: solid;
 | 
				
			||||||
 | 
					    border-width: 1px;
 | 
				
			||||||
 | 
					    border-bottom: 1px;
 | 
				
			||||||
 | 
					    border-color:rgb(75, 75, 75);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    background-color: rgb(80, 80, 80);
 | 
				
			||||||
 | 
					    height: 70px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    user-select: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.contact.dark {
 | 
				
			||||||
 | 
					    background-color: black;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.contactlist {
 | 
				
			||||||
 | 
					    height: 500px;
 | 
				
			||||||
 | 
					    width: 200px;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					    border-radius: 2%;
 | 
				
			||||||
 | 
					    background: rgb(48, 45, 45);
 | 
				
			||||||
 | 
					    overflow-y: scroll;
 | 
				
			||||||
 | 
					    overflow-x: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.messagelist {
 | 
				
			||||||
 | 
					    height: 400px;
 | 
				
			||||||
 | 
					    width: 800px;
 | 
				
			||||||
 | 
					    top: 0px;
 | 
				
			||||||
 | 
					    left: 200px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    background-color: rgb(80, 80, 80);
 | 
				
			||||||
 | 
					    overflow-x: hidden;
 | 
				
			||||||
 | 
					    overflow-y: scroll;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.messagelist > * {
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.profilepiccontainer {
 | 
				
			||||||
 | 
					    height: 60px;
 | 
				
			||||||
 | 
					    width: 60px;
 | 
				
			||||||
 | 
					    margin-top: 10px;
 | 
				
			||||||
 | 
					    margin-left: 10px;
 | 
				
			||||||
 | 
					    margin-right: 10px;
 | 
				
			||||||
 | 
					    float: left;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.profilepic {
 | 
				
			||||||
 | 
					    border-radius: 50%;
 | 
				
			||||||
 | 
					    height: 50px;
 | 
				
			||||||
 | 
					    width: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.profilenamecontainer {
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					    padding: 7%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.profilename {
 | 
				
			||||||
 | 
					    color: white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.chatbubble {
 | 
				
			||||||
 | 
						margin-top: 20px;
 | 
				
			||||||
 | 
					    margin-left: 20px;
 | 
				
			||||||
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
						width: auto;
 | 
				
			||||||
 | 
						height: auto;
 | 
				
			||||||
 | 
					    padding: 10px;
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					    border-radius: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.left {
 | 
				
			||||||
 | 
					    background-color: rgba(0, 57, 163, 0.637);
 | 
				
			||||||
 | 
					    margin-right: 35px;
 | 
				
			||||||
 | 
					    color: white;
 | 
				
			||||||
 | 
					    float: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.right {
 | 
				
			||||||
 | 
					    background-color: khaki;
 | 
				
			||||||
 | 
					    color: black;
 | 
				
			||||||
 | 
					    margin-right: 35px;
 | 
				
			||||||
 | 
					    float: right;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.chatbubble-container {
 | 
				
			||||||
 | 
					    width: 800px;
 | 
				
			||||||
 | 
					    height: auto;
 | 
				
			||||||
 | 
					    float: left;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.chatinput {
 | 
				
			||||||
 | 
					    background-color: rgb(75, 75, 75);
 | 
				
			||||||
 | 
					    top: 400px;
 | 
				
			||||||
 | 
					    left: 200px;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    height: 92px;
 | 
				
			||||||
 | 
					    width: 793px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    color: antiquewhite;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    border-width: 2px;
 | 
				
			||||||
 | 
					    border-color: rgb(48, 45, 45);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user