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-08-05 15:22:43 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
dc868cc7eeb4c8db38d6b64ab2fce2ee994d6a5d
dc868cc7
1 parent
97e4c3c6
remove room
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
271 deletions
front/src/Routes/Room/RoomContainer.js
front/src/Routes/Room/RoomPresenter.js
front/src/Routes/Room/RoomQueries.js
front/src/Routes/Room/RoomContainer.js
deleted
100644 → 0
View file @
97e4c3c
import
React
,
{
useState
}
from
"react"
;
import
{
useMutation
}
from
"@apollo/react-hooks"
;
import
{
withRouter
}
from
"react-router-dom"
;
import
RoomPresenter
from
"./RoomPresenter"
;
import
{
CREATE_ROOM
}
from
"./RoomQueries"
;
import
useInput
from
"../../Hooks/useInput"
;
import
{
toast
}
from
"react-toastify"
;
export
default
withRouter
(()
=>
{
const
[
action
,
setAction
]
=
useState
(
"showList"
);
const
roomName
=
useInput
(
""
);
const
[
createRoom
]
=
useMutation
(
CREATE_ROOM
);
let
newRoomObj
;
const
onSubmit
=
async
(
e
)
=>
{
e
.
preventDefault
();
if
(
roomName
.
value
!==
""
)
{
try
{
newRoomObj
=
await
createRoom
({
variables
:
{
name
:
roomName
.
value
}
});
if
(
!
newRoomObj
)
{
// when fail to create room
toast
.
error
(
"fail to create new room"
);
}
else
{
// when success to make room
toast
.
success
(
"success to make new room !"
);
setAction
(
"showList"
);
}
}
catch
{
toast
.
error
(
"occur unexpected error"
);
}
}
else
{
toast
.
error
(
"room name is required !"
);
}
};
return
(
<
RoomPresenter
action
=
{
action
}
setAction
=
{
setAction
}
onSubmit
=
{
onSubmit
}
roomName
=
{
roomName
}
/
>
);
});
front/src/Routes/Room/RoomPresenter.js
deleted
100644 → 0
View file @
97e4c3c
import
React
from
"react"
;
import
styled
from
"styled-components"
;
import
{
FontAwesomeIcon
}
from
"@fortawesome/react-fontawesome"
;
import
{
faArrowRight
}
from
"@fortawesome/free-solid-svg-icons"
;
import
{
Link
}
from
"react-router-dom"
;
import
Input
from
"../../Components/Input"
;
import
Button
from
"../../Components/Button"
;
import
{
useQuery
}
from
"@apollo/react-hooks"
;
import
{
GET_ROOMS
}
from
"./RoomQueries"
;
const
Wrapper
=
styled
.
div
`
display: flex;
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
.Header {
position: fixed;
top: 0;
}
`
;
const
HideWrapper
=
styled
.
div
`
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
background-color: #535c68;
opacity: 0.6;
`
;
const
FormContainer
=
styled
.
div
`
display: flex;
position: fixed;
background-color: #f5f6fa;
min-height: 10rem;
min-width: 20rem;
border-radius: 10px;
`
;
const
Form
=
styled
.
form
`
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
padding: 15px;
span {
margin-bottom: 15px;
}
input {
margin-bottom: 15px;
}
button {
background-color: #1e3799;
width: 30%;
color: white;
border-radius: 10px;
font-family: "Ubuntu", sans-serif;
}
`
;
const
FormText
=
styled
.
span
`
font-size: 15px;
font-family: "Ubuntu", sans-serif;
`
;
const
RoomWrapper
=
styled
.
div
`
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #a5b1c2;
border-radius: 10px;
box-shadow: 1px 1px 10px #8395a7;
min-width: 23.75rem;
width: auto;
max-height: none;
padding: 0.5rem 0.7rem 0 1rem;
`
;
const
RoomContainer
=
styled
.
div
`
display: flex;
flex-direction: column;
width: 100%;
overflow-y: scroll;
max-height: 85px;
justify-content: center;
align-items: center;
&::-webkit-scrollbar {
width: 10px;
}
&::-webkit-scrollbar-track {
background-color: transparent;
}
&::-webkit-scrollbar-thumb {
border-radius: 3px;
background-color: gray;
}
&::-webkit-scrollbar-button {
width: 0;
height: 0;
}
`
;
const
RoomUL
=
styled
.
ul
`
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
svg {
color: white;
opacity: 0.7;
}
`
;
const
RoomItem
=
styled
.
li
`
font-family: "Ubuntu", sans-serif;
`
;
const
CreateContainer
=
styled
.
div
`
padding-top: 1.9rem;
padding-bottom: 1.7rem;
box-shadow: 0 -4px 4px rgba(0, 0, 0, 0.04);
`
;
const
StyledLink
=
styled
(
Link
)
`
width: 100%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
text-decoration: none;
cursor: pointer;
color: #079992;
&:not(:last-child) {
margin-bottom: 10px;
}
svg {
color: #079992;
&:hover {
border-bottom: 1px solid #079992;
}
}
li {
color: black;
&:hover {
color: #079992;
}
}
span {
&:hover {
border-bottom: 1px solid #079992;
}
}
`
;
export
default
({
action
,
setAction
,
onSubmit
,
roomName
})
=>
{
const
{
data
}
=
useQuery
(
GET_ROOMS
);
let
roomArray
;
if
(
data
!==
undefined
)
{
const
{
getRooms
}
=
data
;
roomArray
=
getRooms
;
}
return
(
<
Wrapper
>
{
action
===
"showList"
?
(
<>
<
RoomWrapper
>
<
RoomContainer
>
<
RoomUL
>
{
roomArray
&&
roomArray
.
map
((
e
)
=>
(
<
StyledLink
to
=
{
e
.
name
}
key
=
{
e
.
id
}
>
<
RoomItem
>
{
e
.
name
}
<
/RoomItem
>
<
FontAwesomeIcon
icon
=
{
faArrowRight
}
/
>
<
/StyledLink
>
))}
<
/RoomUL
>
<
/RoomContainer
>
<
CreateContainer
>
<
StyledLink
to
=
"/"
onClick
=
{()
=>
setAction
(
"makeList"
)}
>
<
span
>
Create
New
Room
<
/span
>
<
/StyledLink
>
<
/CreateContainer
>
<
/RoomWrapper
>
<
/
>
)
:
(
<
HideWrapper
className
=
"hideWrapper"
>
<
FormContainer
>
<
Form
onSubmit
=
{
onSubmit
}
>
<
FormText
>
Room
Name
<
/FormText
>
<
Input
placeholder
=
"Enter new Room name"
{...
roomName
}
/
>
<
Button
text
=
"Submit"
/>
<
/Form
>
<
/FormContainer
>
<
/HideWrapper
>
)}
<
/Wrapper
>
);
};
front/src/Routes/Room/RoomQueries.js
deleted
100644 → 0
View file @
97e4c3c
import
gql
from
"graphql-tag"
;
export
const
GET_ROOMS
=
gql
`
{
getRooms {
id
name
}
}
`
;
export
const
CREATE_ROOM
=
gql
`
mutation createRoom($name: String!) {
createRoom(name: $name) {
id
name
}
}
`
;
Please
register
or
login
to post a comment