Temas
Temas são um conjunto de Widgets utilizados para montar um passo de formulário no Firebolt, esse tema pode ser passado como uma prop para o componente FireboltForm
ou StepForm
.
Atualmente no monorepo do firebolt mantemos dois temas, o blueberry-theme
e o material-theme
, porém outros temas podem ser criados pelos usuários do firebolt.
Os temas são necessários para permitir a customização dos componentes que devem ser renderizados pelo FireboltForm
:
-
O tema deve mapear o nome identificador utilizado no JSON para um componente React, por exemplo:
- Se no JSON de configuração criarmos um campo que utiliza o
"ui:widget": "Text"
, o tema fica responsável por atribuir um componente a esseText
- Um tema deve obrigatoriamente implementar os Widgets básicos de formulário, ou seja
Text
,Select
,Checkbox
,Radio
e etc. - Um tema pode definir outros Widgets mais específicos, por exemplo o tema do Blueberry implementa dois widgets extras: o
CEPWidget
e oBRCityWidget
.
- Se no JSON de configuração criarmos um campo que utiliza o
exemplo de um tema:
const defaultTheme = {
"Email": EmailWidget,
"Text": TextWidget,
"TextArea": TextAreaWidget,
"Select": SelectWidget,
"Number": NumberWidget,
"Password": PasswordWidget,
"Check": CheckWidget,
"CheckboxGroup": CheckboxGroupWidget,
"Radio": RadioWidget,
}
implementando o tema:
import BlueberryTheme from "@iq-firebolt/blueberry-theme"
import { FireboltForm } from "@iq-firebolt/client"
const MyForm = () => {
return (
<FireboltForm theme={BlueberryTheme} />
)
}