@softcenter/react-basic-components v0.58.1
react-basic-components
Componentes básicos feitos em React.js para uso nos projetos da Softcenter!
Instalação
# via npm
npm install @softcenter/react-basic-components
# via yarn
yarn add @softcenter/react-basic-componentsExemplo 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
:hovere:activepara estilização; - O estado
disabledaplica um tema cinza padrão no botão.
Exemplo:
const Example = () => {
return <Button>Enviar</Button>
}Propriedades:
String fontSizeAltera o tamanho da fonte do botão.
Checkbox
Checkbox padrão, customizável. Características:
- O estado
enabledaplica um tema azul sobre a checkbox.
Exemplo:
const Example = () => {
return <Checkbox enabled round small />
}Propriedades:
Boolean enabledTorna a checkbox ativa.
Boolean roundArredonda os cantos da checkbox.
Boolean smallDiminui 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 errorSinalização de erro. Basta utilizar a prop
Boolean error.String errorMsgExibição de mensagem de erro através da prop
String errorMsg. A mensagem de erro somente será exibida quando a propBoolean errorfor verdadeira.JSX iconÍcone no campo de entrada através da prop
<JSX> icon.Boolean camelCaseQuando essa prop for verdadeira, vai ser aplicado o Camel Case no texto do input comforme for digitado.
Boolean shouldStrokeQuando essa prop for verdadeira, o ícone recebido na prop icon terá a sua cor aplicada aplicada na propriedade css
strokeao invés da propriedadefill.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 containerRefReferê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 titleTítulo do campo de entrada.
String fontSizeAltera 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 onCloseRecebe 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 CloseButtonRecebe 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 onResetValueFunção que é disparada quando o valor selecionado é resetado.
Function onSelectItemFunção que é disparada quando um item da lista é selecionado.
Function setShowFunção responsável por alterar o estado de exibição da lista.
Ref containerRefReferência do elemento que contém a lista. Esse elemento deve conter a propriedade css
position:absolute.Array dataArray de dados que representam as opções da lista. Cada array é um objeto do seguinte formato:
{data: '', value: ''}. Ondevalueé o nome do item na lista edatacontém dados específicos àquele valor.Boolean loadingExibe 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.
ComponentComponente cujo conterá a lista.
Function onResetValueFunção que é disparada quando o valor selecionado é resetado.
Function onSelectItemFunção que é disparada quando um item da lista é selecionado.
Array dataArray de dados que representam as opções da lista. Cada array é um objeto do seguinte formato:
{data: '', value: ''}. Ondevalueé o nome do item na lista edatacontém dados específicos àquele valor.Boolean addDescriptionToItemsQuando a variável for verdadeira, será possível passar uma propriedade adicional ao array de objetos da prop data. Essa propriedade adicional se chama
descpte 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 autoFilterOpção de filtragem automático. Quandotrue, o próprio componente irá realizar a filtragem dos dados fornecidos na propriedadedata.Function onChangeFunção que é passada para o componente da propriedadeComponent.Function onThresholdReachedFunção que é disparada quando o usuário scrolla até o limite máximo da lista.Boolean itemIsSelectedBoolean que deve ser passada comotruequando o componente é inicializado com um valor selecionado.
ToggleSwitch
ToggleSwitch (Alternador). Características:
Exemplo:
const Example = () => {
return <ToggleSwitch enabled />
}Propriedades:
Boolean enabledTorna 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-exampleAo 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:
- Executar o comando:
## via npm
npm build
## via yarn
yarn buildAlterar a propriedade
versionno arquivo./package.json, respeitando o versionamento semântico.Logar no npm, utilizando o comando
npm login. Caso já esteja logado, pule para a próxima etapa.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
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago