# 2° Etapa MonkChat > **Aluna:** Patricia Oliveira Paulino > **Número:** 37 [toc] ## MonkChat em ReactJS ### src/componente/index.js ```jsx= import { ContainerCabecalho } from './styled' export default function Cabecalho() { return( <ContainerCabecalho> <div class="logo"> <img src="/assets/img/logo.png" alt="" /></div> <div class="linha"><img src="/assets/img/linhadologo.png" alt="" /> </div> <div class="nome">MonkChat</div> </ContainerCabecalho> ) } ``` ### src/componente/styled.js ```jsx= import styled from "styled-components" const ContainerCabecalho = styled.div` display: flex; flex-direction: row; align-items: center; .nome { font-size: 36px; font-family: fonte2; color: white; } .linha { margin: 0px 15px; } ` export { ContainerCabecalho } ``` ### src/pages/monkChat/index.js ```jsx= import { Container, Conteudo, Botoes } from './styled' import Cabecalho from "../../componente/cabecalho" export default function MonkChat() { return( <Container> <Cabecalho /> <Conteudo> <div className="parte1"> <div className="criarouentrar"> <div className="pt1"> <div className="sala">Sala:</div> <input maxlength="20"/> </div> <div className="pt2"> <div className="nick">Nick:</div> <input className="input" maxlength="15" /> </div> <div className="pt3"> <Botoes>Criar</Botoes> <Botoes>Entrar</Botoes> </div> </div> <div className="enviarmensagem"> <div className="texto">Mensagem:</div> <textarea></textarea> <div className="bot"><Botoes>Enviar</Botoes></div> </div> </div> </Conteudo> </Container> ) } ``` ### src/pages/monkChat/styled.js ```jsx= import styled from "styled-components"; const Container = styled.div` display: flex; flex-direction: row; margin: 34px 30px 28px 30px; padding: 0px 20px 0px 20px; background-color: rgba(0, 0, 0, 0.12); } .parte1 { display: flex; flex-direction: column; margin: 50px 40px; justify-content: space-between; } .criarouentrar { margin-bottom: 65px; } .pt1 { display: flex; flex-direction: row; color: white; } .sala { margin-top: 2px; margin-right: 11px; font-size: 18px; font-family: fonte2; color: white; } .pt2 { display: flex; flex-direction: row; color: white; margin: 10px 0px; } .nick { margin-right: 8px; font-size: 18px; font-family: fonte2; color: white; } .pt3 { margin-left: 48px; } .enviarmensagem { color: white; } .enviarmensagem input { border-radius: 5px; border: white; } .texto { font-size: 18px; font-family: fonte2; color: white; margin-bottom: 10px; } .bot { margin-left: 111px; margin-top: 10px; } ` const Botoes = styled.button` font-weight: 700; color: #0000; background-color: #508B4BF; border: none; border-radius: 20px; cursor: pointer; font-size: 16px; font-family: fonte2; ` export { Container, Conteudo, Botoes } ``` ### src/index.js ```jsx= import React from 'react'; import reactDom from 'react-dom'; import './index.css'; import Routes from './routes'; reactDom.render( <React.StrictMode> <Routes /> </React.StrictMode>, document.getElementById('root') ); ``` ### src/router.js ```jsx= import { BrowserRouter, Switch, Route } from 'react-router-dom' import MonkChat from './pages/monkchat' export default function Routes () { return( <BrowserRouter> <Switch> <Route path="/" exact={true} component={MonkChat} /> </Switch> </BrowserRouter> ) } ``` --- --- --- ## Caso de uso ![](https://i.imgur.com/pPFqKE2.png) >**Criar Sala** >Descrição: Tendo colocado o nome de usuário e o nome da sala (ambos válidos), o usuário poderá criar uma sala e após isso convidar mais pessoas para entrar na sua sala e interagir com eles no app através das mensagens. >Regras: 1- Não poderá ser criada duas ou mais salas com o mesmo nome; 2- É obrigatório o preenchimento dos campos "sala" e "nick"; 3- O nome da sala tem que ter pelo menos 5 caracteres e no máximo 20; 4- O máximo de caracteres para o nome do usuário é de 20. >Evento: Depois de preenchido os campos de sala e nick, o usuário irá clicar no botão de criar a sala. >**Entrar em uma Sala** >Descrição: Tendo o nome de uma sala já criada o usuário poderá entrar na mesma preenchendo corretamente os campos de nick e sala, preenchendo o da sala com o nome da que o mesmo deseja entrar e interagir. >Regras: 1- Não é possível entrar em uma sala que não foi criada; 2- Não é possível entrar com o mesmo nick de alguém que já está na sala desejada; 3- O nome da sala tem que ter pelo menos 5 caracteres e no máximo 20; 4- É obrigatório o preenchimento dos campos "sala" e "nick"; 5- O máximo de caracteres para o nome do usuário é de 20. >Evento: Tendo preenchido corretamente os campos de sala e nick, o usuário precisa apenas clicar no botão de entrar. >**Enviar uma mensagem** >Descrição: Após digitar a sua mensagem na área para a digitação o usuário poderá enviar a sua mensagem para os outros integrantes que estão na sala e assim interagir com eles. >Regras: 1- Não poderá ser enviado uma mensagem com menos de 1 caractere; 2 - A mensagem não poderá ter mais de 150 caracteres; 3 - Um usuário não pode enviar muitas mensagens em um curto período de tempo; >Evento: Tendo digitado na área de digitação, basta apenas clicar no botão de enviar. >**Buscar mensagens** >Descrição: A partir dessa funcionalidade o usuário poderá carregar as mensagens que foram enviadas na sala por outros usuários, podendo assim interagir com eles e ver as novas mensagens. >Regras: 1- Não poderá carregar as mensagens no mesmo instante após essa funcionalidade tiver sido usada, terá um tempo de intervalo para o uso da mesma. >Evento: Clique no botão de recarregar as mensagens. ### Modelagem ![](https://i.imgur.com/coqc1Fd.png)
{"metaMigratedAt":"2023-06-16T06:52:08.702Z","metaMigratedFrom":"Content","title":"2° Etapa MonkChat","breaks":true,"contributors":"[{\"id\":\"d757cf0b-4ece-4c2f-893c-8a075e5d4af3\",\"add\":6905,\"del\":49}]"}
Expand menu