EightSystems / design-system

MIT License
4 stars 0 forks source link

[Component Implementation: Forms]: TextField #68

Closed ernestoresende closed 2 years ago

ernestoresende commented 3 years ago

Description

A complete form control component with a label, input and validation elements.

Implementation checklist

Implementation notes

tryvin commented 3 years ago

@ernestoresende Dois pequenos detalhes:

ernestoresende commented 3 years ago

@tryvin

Após refatoração, o componente foi testado em integração com o Formik em um projeto CRA, e funciona como esperado para um input controlado.

O spinner foi substituído pelo componente #52 já presente no projeto.

As funcionalidades que dependem do funcionamento do componente #49 continuarão quebradas até que esse componente também seja normalizado.

ernestoresende commented 3 years ago

@tryvin

Para componentes sem máscara:

<TextField
  name="firstName"
  placeholder="First Name"
  label="First Name"
  onChange={handleChange}
  onBlur={handleBlur}
  value={values.firstName}
  validationError={errors.firstName && touched.firstName}
  validationMessage={errors.firstName ? errors.firstName : ""}
  masked={false}
/>

Para componentes com máscara:

<TextField
  name="date"
  placeholder="dd/mm/aaaa"
  label="Date"
  onChange={handleChange("date")}
  onBlur={handleBlur}
  value={values.date}
  validationError={errors.date && touched.date}
  validationMessage={errors.date ? errors.date : ""}
  masked="true"
  type={"datetime"}
  options={{
    format: "DD/MM/YYYY",
  }}
/>

Descrição foi atualizada com as pendências de implementação.

tryvin commented 3 years ago

@ernestoresende Atualizei a documentação pra usar esse formato de mascara. Também corrigi uns detalhes, como por exemplo o estado de disabled, e cia limitada.

Notei um bug no storybook em que ao digitar algo, ele transformava o valor para [object Object], todavia funcionou no native-docs, não entendi porquê deu erro no storybook web.

ernestoresende commented 3 years ago

@tryvin Também notei esse erro no Storybook em algumas iterações passadas, mas decidi ignorar uma vez que ambos os componentes funcionaram (controlled & uncontrolled) em um projetos CRA e RN respectivamente.

Acho que o problema do Storybook tem haver com a prop value não estar sendo parseada como um dos props controláveis pelo add-on, mas eu também não sei exatamente o que o Storybook usa/faz pra parsear os props de um determinado componente internamente.

github-actions[bot] commented 3 years ago

:tada: This issue has been resolved in version 0.6.0-alpha.1 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

github-actions[bot] commented 2 years ago

:tada: This issue has been resolved in version 0.6.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket: