Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2020-1-capstone-design1
/
Triz_Project1
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
sdy
2020-05-23 05:43:17 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
da45ba0692eb1b13aa06c138f256eba904e1390d
da45ba06
1 parent
0dd3fdf4
create ChatPresenter.js
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
225 additions
and
0 deletions
front/src/Routes/Chat/ChatPresenter.js
front/src/Routes/Chat/ChatPresenter.js
0 → 100644
View file @
da45ba0
import
React
from
"react"
;
import
styled
from
"styled-components"
;
import
Header
from
"../../Components/Header"
;
import
Input
from
"../../Components/Input"
;
import
Button
from
"../../Components/Button"
;
import
{
FontAwesomeIcon
}
from
"@fortawesome/react-fontawesome"
;
import
{
faAddressBook
,
faArrowDown
,
faPlus
,
}
from
"@fortawesome/free-solid-svg-icons"
;
import
{
Link
}
from
"react-router-dom"
;
const
Wrapper
=
styled
.
div
`
display: grid;
width: 100%;
height: 100%;
grid-template-rows: 80px auto min-content;
grid-template-areas:
"Header"
"Workspace";
.Header {
box-shadow: none;
}
`
;
const
ChatWrapper
=
styled
.
div
`
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
grid-template-columns: 200px auto;
grid-area: "Workspace";
`
;
const
ChatMenuContainer
=
styled
.
div
`
display: grid;
width: 200px;
height: 100%;
background-color: #667aff;
color: white;
grid-template-rows: 80px 80px 1fr;
`
;
const
TitleContainer
=
styled
.
div
`
display: flex;
justify-content: center;
align-items: center;
font-size: 20px;
border-top: 1px solid rgba(255, 255, 255, 0.5);
`
;
const
Title
=
styled
.
span
`
font-family: "Chelsea Market", cursive;
`
;
const
ItemText
=
styled
.
span
`
font-family: "Ubuntu", sans-serif;
`
;
const
PeopleContainer
=
styled
.
div
`
display: flex;
justify-content: center;
align-items: center;
svg {
font-size: 20px;
}
span {
margin-left: 10px;
font-size: 20px;
}
border-top: 1px solid rgba(255, 255, 255, 0.5);
`
;
const
CategoryContainer
=
styled
.
div
`
display: flex;
svg {
font-size: 20px;
}
span {
margin-left: 10px;
font-size: 20px;
}
border-top: 1px solid rgba(255, 255, 255, 0.5);
`
;
const
ItemListContainer
=
styled
.
div
`
display: flex;
flex-direction: row;
width: 100%;
padding: 15px;
`
;
const
ItemList
=
styled
.
ul
`
align-items: center;
svg {
margin: 0px 10px;
}
`
;
const
Item
=
styled
.
li
``
;
const
ChatScreenContainer
=
styled
.
div
`
display: grid;
width: 100%;
height: 100%;
grid-template-rows: 70px 1fr;
`
;
const
ChatScreenHeader
=
styled
.
div
`
display: flex;
flex-direction: row;
align-items: center;
padding: 10px;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
`
;
const
ChatScreenBox
=
styled
.
div
`
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
`
;
const
InputWrapper
=
styled
.
div
`
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 10px;
margin-bottom: 10px;
width: 100%;
`
;
const
InputContainer
=
styled
.
div
`
position: fixed;
bottom: 0;
padding: 10px;
margin-bottom: 20px;
display: flex;
flex-direction: row;
width: 70%;
form {
width: 100%;
button {
background-color: #27ae60;
width: 10%;
color: white;
border-radius: 10px;
}
input {
width: 70%;
}
}
border: 1px solid rgba(0, 0, 0, 0.7);
border-radius: 10px;
`
;
const
StyledLink
=
styled
(
Link
)
`
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
text-decoration: none;
color: white;
cursor: pointer;
&:hover {
background-color: white;
color: #667aff;
}
`
;
export
default
({
data
,
location
,
message
,
onSubmit
})
=>
{
const
{
pathname
}
=
location
;
const
roomName
=
pathname
.
slice
(
1
,
pathname
.
length
);
return
(
<
Wrapper
>
<
Header
text
=
{
"KhuChat"
}
/
>
<
ChatWrapper
className
=
"ChatWrapper"
>
<
ChatMenuContainer
>
<
TitleContainer
>
<
Title
>
{
roomName
}
Room
<
/Title
>
<
/TitleContainer
>
<
PeopleContainer
>
<
StyledLink
to
=
"People"
>
<
FontAwesomeIcon
icon
=
{
faAddressBook
}
/
>
<
ItemText
>
People
<
/ItemText
>
<
/StyledLink
>
<
/PeopleContainer
>
<
CategoryContainer
>
<
ItemListContainer
>
<
ItemList
>
<
FontAwesomeIcon
icon
=
{
faArrowDown
}
/> Categor
y
<
FontAwesomeIcon
icon
=
{
faPlus
}
/
>
<
Item
>
<
ItemText
>
#
Music
<
/ItemText
>
<
/Item
>
<
/ItemList
>
<
/ItemListContainer
>
<
/CategoryContainer
>
<
/ChatMenuContainer
>
<
ChatScreenContainer
>
<
ChatScreenHeader
>
<
Title
>
Selected
Menu
Title
<
/Title
>
<
/ChatScreenHeader
>
<
ChatScreenBox
>
<
InputWrapper
>
<
InputContainer
>
<
form
onSubmit
=
{
onSubmit
}
>
<
Input
placeholder
=
{
"Enter any words"
}
type
=
"text"
{...
message
}
/
>
<
Button
text
=
{
"Submit"
}
/
>
<
/form
>
<
/InputContainer
>
<
/InputWrapper
>
<
/ChatScreenBox
>
<
/ChatScreenContainer
>
<
/ChatWrapper
>
<
/Wrapper
>
);
};
Please
register
or
login
to post a comment