0.58.1 • Published 4 years ago

@softcenter/react-basic-components v0.58.1

Weekly downloads
5
License
MIT
Repository
github
Last release
4 years ago

react-basic-components

Componentes básicos feitos em React.js para uso nos projetos da Softcenter!

NPM JavaScript Style Guide

Instalação

# via npm
npm install @softcenter/react-basic-components

# via yarn
yarn add @softcenter/react-basic-components

Exemplo de uso

import React from 'react'

import { Button } from '@softcenter/react-basic-components'

export const Example = () => {
  const sayHiOnClick = () => {
    alert('hi!')
  }

  return <Button onClick={sayHiOnClick}>Confirmar</Button>
}

Biblioteca de Componentes

Nota: todos os componentes, aqui listados, podem receber normalmente as props nativas de elementos HTML. Exemplo: um botão pode receber a prop <Button disabled={true} />, assim como input pode receber a prop <Input onChange={fn} />.

Os componentes tem largura e altura 100%, sendo necessario ajustar a div que a contem.

Componentes fornecidos pela biblioteca:

Button

Um botão simples, no tema azul. Características:

  • Utiliza os seletores css :hover e :active para estilização;
  • O estado disabled aplica um tema cinza padrão no botão.

Exemplo:

const Example = () => {
  return <Button>Enviar</Button>
}

Propriedades:

  • String fontSize

    Altera o tamanho da fonte do botão.


Checkbox

Checkbox padrão, customizável. Características:

  • O estado enabled aplica um tema azul sobre a checkbox.

Exemplo:

const Example = () => {
  return <Checkbox enabled round small />
}

Propriedades:

  • Boolean enabled

    Torna a checkbox ativa.

  • Boolean round

    Arredonda os cantos da checkbox.

  • Boolean small

    Diminui o tamanho da checkbox.


SecondaryButton

Variação do componente Button. Botão estilizado, com plano de fundo transparente e borda e texto evidente em preto.

Exemplo:

const Example = () => {
  return <SecondaryButton>Enviar</SecondaryButton>
}

Input

Campo de entrada cinza com funções a mais. Características:

  • Sinalização e exibição de mensagem de erro;
  • Modo senha;
  • Ícones;

Exemplo:

const Example = () => {
  return <Input icon={<SearchIcon />} />
}

Propriedades:

  • Boolean error

    Sinalização de erro. Basta utilizar a prop Boolean error.

  • String errorMsg

    Exibição de mensagem de erro através da prop String errorMsg. A mensagem de erro somente será exibida quando a prop Boolean error for verdadeira.

  • JSX icon

    Ícone no campo de entrada através da prop <JSX> icon.

  • Boolean camelCase

    Quando essa prop for verdadeira, vai ser aplicado o Camel Case no texto do input comforme for digitado.

  • Boolean shouldStroke

    Quando essa prop for verdadeira, o ícone recebido na prop icon terá a sua cor aplicada aplicada na propriedade css stroke ao invés da propriedade fill.

    Funciona para ícones que não são bem exibidos ao serem passados para o campo de entrada.

  • String type="password"

    Modo senha. Ao passar o tipo senha para o input type="password", o campo de entrada exibe um ícone clicável para mostrar/esconder a senha.

  • Ref containerRef Referência à <div> que contem o elemento <input>. Vide estrutura do componente.


LabeledInput

Campo de entrada com rótulo.

Exemplo:

const Example = () => {
  return <LabeledInput title="Nome do usuário" ref={userNameRef}>
}

Propriedades:

  • String title

    Título do campo de entrada.

  • String fontSize

    Altera o tamanho da fonte do campo de entrada.


Modal

Um modal simples, sem animação, que exibe conteúdo ao ser declarado. Características:

  • Botão de fechar opcional.
  • Botão de fechar customizável.
  • Plano de fundo (backdrop) cinza.

Exemplo:

const Example = () => {
  return (
    <Modal CloseButton={NewCloseIcon} onClose={fn}>
      Conteúdo customizável do modal.
    </Modal>
  )
}

Propriedades:

  • Function onClose

    Recebe uma função que é executada quando o usuário clica no botão fechar. Caso nenhuma função seja passada, o botão de fechar não será exibido.

  • JSX CloseButton

    Recebe um componente que será renderizado no lugar do botão fechar.

SearchList

Uma lista de pesquisa.

Exemplo:

const Example = () => {
  const [showList, setShowList] = useState(false);
  const listContainer = useRef();

  return (
    <div ref={listContainer}>
      <SearchList onSelectItem={(item) => alert(`Item selecionado! ${item}`)}
        setShow={setShowList}
        data={[{value: 123, data: 'um dois tres'}]},
        containerRef={listContainer}>
      </SearchList>
    </div>
  )
}

Propriedades:

  • Function onResetValue

    Função que é disparada quando o valor selecionado é resetado.

  • Function onSelectItem

    Função que é disparada quando um item da lista é selecionado.

  • Function setShow

    Função responsável por alterar o estado de exibição da lista.

  • Ref containerRef

    Referência do elemento que contém a lista. Esse elemento deve conter a propriedade css position:absolute.

  • Array data

    Array de dados que representam as opções da lista. Cada array é um objeto do seguinte formato: {data: '', value: ''}. Onde value é o nome do item na lista e data contém dados específicos àquele valor.

  • Boolean loading

    Exibe um spinner no final da lista.


StatefulSearchList

Uma lista de pesquisa com controle de estado interno.

Exemplo:

const Example = () => {

  return (
      <StatefulSearchList onSelectItem={(item) => alert(`Item selecionado! ${item}`)}
        data={[{value: 123, data: 'um dois tres'}]},
        Component={Input}>
      </StatefulSearchList>
  )
}

Propriedades:

Todas as propriedades passadas para o StatefulSearchList, além das listadas abaixo, irão ser redirecionadas para o componente passado em Component.

  • Component

    Componente cujo conterá a lista.

  • Function onResetValue

    Função que é disparada quando o valor selecionado é resetado.

  • Function onSelectItem

    Função que é disparada quando um item da lista é selecionado.

  • Array data

    Array de dados que representam as opções da lista. Cada array é um objeto do seguinte formato: {data: '', value: ''}. Onde value é o nome do item na lista e data contém dados específicos àquele valor.

  • Boolean addDescriptionToItems

    Quando a variável for verdadeira, será possível passar uma propriedade adicional ao array de objetos da prop data. Essa propriedade adicional se chama descpt e permite que cada item da lista renderizada pelo componente tenha uma pequena descrição abaixo de seu nome. Exemplo: <StatefulSearchList data={[data: '5fhas08lklja23jn230', value: 'Tomador 1', descpt: 'São Paulo - SP' ]}/>

  • Boolean autoFilter Opção de filtragem automático. Quando true, o próprio componente irá realizar a filtragem dos dados fornecidos na propriedade data.

  • Function onChange Função que é passada para o componente da propriedade Component.

  • Function onThresholdReached Função que é disparada quando o usuário scrolla até o limite máximo da lista.

  • Boolean itemIsSelected Boolean que deve ser passada como true quando o componente é inicializado com um valor selecionado.


ToggleSwitch

ToggleSwitch (Alternador). Características:

Exemplo:

const Example = () => {
  return <ToggleSwitch enabled />
}

Propriedades:

  • Boolean enabled

    Torna a checkbox ativa.


Ambiente de Desenvolvimento

Todos os componentes da biblioteca estão localizados na pasta ./src. Novos componentes devem ser adicionados nesta mesma pasta.

Testando os componentes em tempo real

Para testar os componentes enquanto estiver desenvolvendo, utilize do seguinte comando:

# npm
npm start-example

# yarn
yarn start-example

Ao executar este comando, uma página será aberta em seu navegador contendo a aplicação React localizada na pasta ./example/src. Ela é responsável por exibir os componentes no ambiente de desenvolvimento.

O arquivo ./example/src/App.js é a porta de entrada da aplicação e, portanto, contém os componentes que são exibidos no link aberto por seu navegador. Edite este mesmo arquivo caso você queira testar o comportamento de um dos componentes da biblioteca.

Nota: O comando acima deve ser executado para toda vez que você realizar uma alteração nos componentes e queira visualizá-la. O comando realiza a recompilação do projeto e inicializa um novo servidor.

Versionando e Publicando a Biblioteca

Para publicar uma versão nova da biblioteca no npm, é necessário seguir os próximos passos:

  1. Executar o comando:
## via npm
npm build

## via yarn
yarn build
  1. Alterar a propriedade version no arquivo ./package.json, respeitando o versionamento semântico.

  2. Logar no npm, utilizando o comando npm login. Caso já esteja logado, pule para a próxima etapa.

  3. Publicar a biblioteca com o comando npm publish --access public

Após essas etapas, não se esqueça de realizar o commit e o push para o repositório remoto.

Licença

MIT © softcenter

0.58.1

4 years ago

0.58.0

4 years ago

0.57.4

5 years ago

0.57.5

5 years ago

0.57.2

5 years ago

0.57.3

5 years ago

0.57.1

5 years ago

0.57.8

5 years ago

0.57.9

5 years ago

0.57.6

5 years ago

0.57.7

5 years ago

0.57.10

5 years ago

0.57.11

5 years ago

0.56.5

5 years ago

0.56.3

5 years ago

0.56.4

5 years ago

0.56.7

5 years ago

0.56.8

5 years ago

0.57.0

5 years ago

0.56.2

5 years ago

0.56.1

5 years ago

0.56.0

5 years ago

0.55.3

5 years ago

0.55.2

5 years ago

0.55.1

5 years ago

0.55.0

5 years ago

0.53.4

5 years ago

0.53.3

5 years ago

0.53.2

5 years ago

0.53.0

5 years ago

0.53.1

5 years ago

0.52.3

5 years ago

0.52.2

5 years ago

0.52.1

5 years ago

0.52.0

5 years ago

0.51.5

5 years ago

0.51.4

5 years ago

0.51.3

5 years ago

0.51.0

5 years ago

0.51.1

5 years ago

0.50.0

5 years ago

0.49.9

5 years ago

0.49.8

5 years ago

0.49.7

5 years ago

0.49.6

5 years ago

0.49.5

5 years ago

0.49.1

5 years ago

0.49.2

5 years ago

0.49.0

5 years ago

0.49.3

5 years ago

0.49.4

5 years ago

0.48.5

5 years ago

0.48.2

5 years ago

0.48.3

5 years ago

0.48.0

5 years ago

0.48.1

5 years ago

0.48.4

5 years ago

0.47.0

5 years ago

0.46.9

5 years ago

0.46.8

5 years ago

0.46.7

5 years ago

0.46.6

5 years ago

0.46.5

5 years ago

0.46.4

5 years ago

0.46.2

5 years ago

0.46.3

5 years ago

0.46.0

5 years ago

0.46.1

5 years ago

0.45.5

5 years ago

0.45.4

5 years ago

0.45.3

5 years ago

0.45.1

5 years ago

0.45.0

5 years ago

0.44.5

5 years ago

0.44.4

5 years ago

0.44.2

5 years ago

0.44.3

5 years ago

0.44.1

5 years ago

0.43.0

5 years ago

0.41.0

5 years ago

0.44.0

5 years ago

0.42.0

5 years ago

0.40.0

5 years ago

0.39.0

5 years ago

0.38.1

5 years ago

0.38.0

5 years ago

0.37.0

5 years ago

0.36.2

5 years ago

0.36.1

5 years ago

0.35.1

5 years ago

0.35.0

5 years ago

0.34.1

5 years ago

0.34.0

5 years ago

0.33.0

5 years ago

0.32.0

5 years ago

0.31.0

5 years ago

0.30.0

5 years ago

0.29.0

5 years ago

0.28.0

5 years ago

0.27.0

5 years ago

0.26.0

5 years ago

0.25.0

5 years ago

0.24.0

5 years ago

0.23.1

5 years ago

0.23.0

5 years ago

0.21.0

5 years ago

0.22.0

5 years ago

0.19.0

5 years ago

0.18.1

5 years ago

0.18.0

5 years ago

0.17.1

5 years ago

0.16.3

5 years ago

0.16.4

5 years ago

0.16.5

5 years ago

0.16.0

5 years ago

0.17.0

5 years ago

0.16.1

5 years ago

0.16.2

5 years ago

0.15.0

5 years ago

0.15.1

5 years ago

0.14.0

5 years ago

0.13.1

5 years ago

0.13.2

5 years ago

0.13.3

5 years ago

0.13.0

5 years ago

0.12.2

5 years ago

0.12.1

5 years ago

0.11.2

5 years ago

0.11.1

5 years ago

0.10.0

5 years ago

0.11.0

5 years ago

0.10.1

5 years ago

0.9.1

5 years ago

0.9.0

5 years ago

0.8.1

5 years ago

0.8.0

5 years ago

0.8.2

5 years ago

0.1.0

5 years ago

1.0.0

5 years ago