Skip to content

Commit

Permalink
Chat layout
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucas Chuairi Cruz committed Aug 22, 2018
1 parent e6b6d08 commit 1643991
Show file tree
Hide file tree
Showing 20 changed files with 321 additions and 10 deletions.
30 changes: 20 additions & 10 deletions src/App.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
import React, { Component } from 'react'
import logo from './logo.svg'
import './App.css'
import './styles/css/index.css'
import Chat from './components/Chat'
import ChatList from './components/ChatList'
import ChatHeader from './components/ChatHeader'

class App extends Component {
constructor() {
super()
this.state = {
msg: '',
username: ''
username: 'lusac',
rooms: [
{name: 'sala 1'},
{name: 'sala 2'},
{name: 'sala 3'},
{name: 'sala 4'},
{name: 'sala 5'}
]
}
}

Expand Down Expand Up @@ -91,14 +100,19 @@ class App extends Component {
if (this.state.username) {
return (
<div>
<small>Olá {this.state.username}!</small>
<form onSubmit={this.onMsgSubmit.bind(this)}>
<div className="chat">
<ChatHeader username={this.state.username} />
<ChatList rooms={this.state.rooms}/>
<Chat />
</div>

{/* <form onSubmit={this.onMsgSubmit.bind(this)}>
<label>
Msg:
<input type="text" value={this.state.msg} onChange={this.onMsgChange.bind(this)} />
</label>
<input type="submit" value="Submit" />
</form>
</form> */}
</div>
)
}
Expand All @@ -107,10 +121,6 @@ class App extends Component {
render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
{this.renderChooseName()}
{this.renderChatRooms()}
</div>
Expand Down
19 changes: 19 additions & 0 deletions src/components/Chat/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import React from 'react';

class Chat extends React.Component {
render() {
return (
<div className="chat-room">
<div className="chat-room__messages">
oie
</div>

<div className="chat-room__input__wrapper">
<input placeholder="escreva uma mensagem" className="chat-room__input"/>
</div>
</div>
)
}
}

export default Chat;
25 changes: 25 additions & 0 deletions src/components/ChatHeader/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import React from 'react';
import PropTypes from 'prop-types';

class ChatHeader extends React.Component {
render() {
return (
<div className="chat-header">
<div className="chat-header__profile">
Olá {this.props.username}!
</div>

<div className="chat-header__chat-name">
chat 1
</div>
</div>
)
}
}

ChatHeader.propTypes = {
username: PropTypes.string,
chatName: PropTypes.string
};

export default ChatHeader;
20 changes: 20 additions & 0 deletions src/components/ChatList/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import React from 'react';
import PropTypes from 'prop-types';

class ChatList extends React.Component {
render() {
return (
<div className="chat-list">
{this.props.rooms.map(function(room, i) {
return (<span key={i} className="chat-list__item">{room.name}</span>)
})}
</div>
)
}
}

ChatList.propTypes = {
rooms: PropTypes.array
};

export default ChatList;
16 changes: 16 additions & 0 deletions src/styles/css/Base.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/Chat.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions src/styles/css/ChatHeader.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/ChatHeader.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions src/styles/css/ChatList.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/ChatList.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions src/styles/css/ChatRoom.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/ChatRoom.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/base.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

73 changes: 73 additions & 0 deletions src/styles/css/index.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/styles/css/index.css.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions src/styles/scss/Base.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
* {
box-sizing: border-box;
}

body, html {
margin: 0;
padding: 0;
box-sizing: border-box;
}

.chat {
display: grid;
grid-template-areas:
"header header header"
"list room room"
}
18 changes: 18 additions & 0 deletions src/styles/scss/ChatHeader.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.chat-header {
height: 50px;
color: #FFF;
padding: 10px;
display: grid;
grid-area: header;
align-items: center;
background: cadetblue;
grid-template-areas: "header-profile header-chat-name header-chat-name";

&__profile {
grid-area: header-profile;
}

&__chat-name {
grid-area: header-chat-name;
}
}
22 changes: 22 additions & 0 deletions src/styles/scss/ChatList.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.chat-list {
grid-area: list;
display: flex;
flex-direction: column;

&__item {
height: 50px;
display: flex;
cursor: pointer;
align-items: center;
justify-content: center;
border-bottom: 1px solid #EEE;

&:hover {
background: #EFEFEF;
}

&:first-child {
border-top: 1px solid #EEE;
}
}
}
22 changes: 22 additions & 0 deletions src/styles/scss/ChatRoom.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.chat-room {
grid-area: room;
background: beige;
border: 1px solid #EEE;

&__messages {
height: 75%;
padding: 10px;
}

&__input {
width: 85%;
height: 100%;
outline: none;
padding: 10px;

&__wrapper {
height: 25%;
padding: 10px;
}
}
}
4 changes: 4 additions & 0 deletions src/styles/scss/index.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@import 'Base';
@import 'ChatHeader';
@import 'ChatRoom';
@import 'ChatList';

0 comments on commit 1643991

Please sign in to comment.