Conversation
Atualização do modulo laboratório
jonasbantunes
left a comment
There was a problem hiding this comment.
Segue uma lista com as minhas sugestões de mudança, além das que fiz diretamente no GitHub. Elas aparecem mais de uma vez ao longo do código, então preferi listar aqui ao invés de comentar em cada trecho de código:
- Remover
console.log(); - Passar o linter no projeto (
prettiereeslint); - Atualizar a sintaxe de exportação para o padrão atual do JavaScript, usando
export defaultao invés demodule.exports; - Mover as declarações de
validationSchemapara fora do corpo do componente.
jonasbantunes
left a comment
There was a problem hiding this comment.
Sugestões de mudança:
- Remover o
package-lock.jsone.yarn/releases/yarn-berry.cjs; - Remover os
console.log()dos arquivos modificados no pull request;
OBS.: O yarn pode ser instalado através do npm, utilizando o comando npm install -g yarn.
| }; | ||
| const quantidade = `${Object.keys(labs).length} itens`; | ||
| const Listar = () => { | ||
| const [state, setState] = useState([]); |
There was a problem hiding this comment.
Esse nome de variável não deixa claro do que se trata. Recomendo trocar por algo que indique se trata de uma lista de laboratórios, como labs ou laboratories, por exemplo.
| const [state, setState] = useState([]); | |
| const [labs, setLabs] = useState([]); |
| useEffect(() => { | ||
| async function fetchData() { | ||
| const res = await api.get('/laboratory'); | ||
| setState(await res.data); |
There was a problem hiding this comment.
Esse await é redundante. A promessa (promise) do axios já foi finalizada com àwait e o res.data é um objeto, não uma promessa.
| setState(await res.data); | |
| setState(res.data); |
| name: values.name, | ||
| capacity: values.capacity, | ||
| is_in_use: false, | ||
| occupied_at: '2020-02-10T23:02:10.000Z', |
There was a problem hiding this comment.
Essa data de ocupação não deveria ser dinâmica?
|
|
||
| import './styles/index.css'; | ||
| const Listar = (props) => { | ||
| const [state, setState] = useState([]); |
There was a problem hiding this comment.
Esse nome de variável não deixa claro do que se trata. Recomendo trocar por algo que indique se trata de um laboratório, como lab ou laboratory, por exemplo.
| const [state, setState] = useState([]); | |
| const [lab, setLab] = useState([]); |
|
|
||
| const ConfirmDelete = (props) => { | ||
|
|
||
| const [value,setValue] = useState(); |
There was a problem hiding this comment.
Esse nome de variável não deixa claro do que se trata. Recomendo trocar por algo que indique se trata de do nome de um laboratório, como labName, laboratoryName ou mesmo name, por exemplo.
| const [value,setValue] = useState(); | |
| const [labName, setLabName] = useState(); |
| if (value === props.title){ | ||
| api.delete(`/laboratory/${props.id}`); | ||
| alert('O laboratório ' + value + ' foi deletado!'); | ||
| window.location.reload(); |
There was a problem hiding this comment.
Comandos de roteamento nativo do navegador devem ser evitados, já que eles entram em conflito com o React Router e recarregam a página totalmente.
| window.location.reload(); |
| <div className="modalDelete"> | ||
| <div className="modalDeleteBox" id="modal"> | ||
| <div className="modalDeleteTitle"> | ||
| <h2> {this.props.title} </h2> |
There was a problem hiding this comment.
Ao alterar os props existentes deste componente, quem utiliza certamente terão as suas funcionalidades quebradas. Inclusive, a parte de Lista de Imagens de SO quebra com essa mudança.
| <ConfirmDelete | ||
| title={props.name} | ||
| id = {props.id} | ||
| onClose={showModal} | ||
| show={show} | ||
| > | ||
| </ConfirmDelete> |
There was a problem hiding this comment.
Os componentes ConfirmDelete e ModalDelete estão fortemente acoplados sem necessidade. Certas telas, como de Imagem de SO, apenas precisam do ModalDelete e não do ConfirmDelte. Idealmente, a exibição desses componentes deve ser orquestrado por quem quer utilizá-los, ao invés dos dois componentes se orquestrarem.
-Atualização no css antigo do lab
-Criação da tela de listagem de laboratórios
-Funcionamento da edição, criação e exclusão do laboratório
-Criação da tela de visualização dos equipamentos pertencentes a um laboratório em especifico
-Equipamentos com exclusão funcionando