GithubHelp home page GithubHelp logo

gobila / desafio-taginput Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.27 MB

Criando Input que aceite emails no formato de tags em React

Home Page: desafio-tag-input.vercel.app

JavaScript 78.82% HTML 2.42% TypeScript 12.39% SCSS 6.38%

desafio-taginput's Introduction

Desafio TagInput

A proposta desse desafio foi criar um componente para inserir tag ao se digitar e-mails no campo de input

TELA

Tecnologias usadas

  • React;
  • Material Ui;
  • SASS;
  • JEST;
  • YUP (instalado, mas não utilizado);
  • ESLint (substituiu o TSLint);

Mudança de Linter

A mudança de Lint aconteceu por estar tendo vários conflitos no VS Code e a dificuldade de resolvê-los, provavelmente pela descontinuidade do projeto. Com isso resolvi trocar pelo ESLint, que tem também possui suporte a TS.

Problemas com uso do YUP para validação

Resolvi usar o YUP para fazer as validações do projeto e não me preocupar tanto com isso, entretanto a complexidade para integrar com o input do Material UI da forma com desejava seria tão custosa quanto criar um arquivo separado para validação. Nesse caso para ter mais controle foi criado um hook simples para definir o campo valido ou invalido se uma determinada condição for satisfeita.

Problemas com o mock de Api

Tive alguns problemas de subir a roda de PATCH com o Prism e onde sempre recebia erro 500 ou 422, ao procurar uma solução achei alguns relatos parecidos no github do projeto. Decidir usar o Postman para fazer o mock da api então recebi de JSON invalido ou erro de servidor, ao ir atrás de solução notei que o swagger.io avisava para problemas na rota utilizando FECTH mais so sobre o assunto. Tentando solucionar o problema descobri ao comentar a linha 119 obtinha resposta. Isso deve acontecer pois o mock deve esperar algum parâmetro para o corpo da requisição, apesar de tentar diferentes formas e comparar com a solicitação e resposta no swagger.io, a alternativa foi realmente comentar a linha.

Testes

A última coisa que fiz foram os testes, entretanto não fiz todos.

Criei um teste para ver se o input estava recebendo o valor digitado.

Implementei o teste de renderizar caso o TAB seja pressionado, pela natureza da função de onBlur que utilizai no input, o novo valor não é realmente adicionado a tela, entretanto através do props changeValue toda vez que é pressionado o TAB a função de onBlur é chamada. Esse caso pode ser necessário utilizar também testes te integração.

Outras Instruções

As instruções iniciais desse desafio e que não foram alteradas estão no diretório docs ou você pode clicar aqui

desafio-taginput's People

Contributors

gobila avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.