mitre-form-component 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,54 +1,174 @@
1
- # React + TypeScript + Vite
2
-
3
- This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
-
5
- Currently, two official plugins are available:
6
-
7
- - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8
- - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
-
10
- ## Expanding the ESLint configuration
11
-
12
- If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
13
-
14
- ```js
15
- export default tseslint.config({
16
- extends: [
17
- // Remove ...tseslint.configs.recommended and replace with this
18
- ...tseslint.configs.recommendedTypeChecked,
19
- // Alternatively, use this for stricter rules
20
- ...tseslint.configs.strictTypeChecked,
21
- // Optionally, add this for stylistic rules
22
- ...tseslint.configs.stylisticTypeChecked,
23
- ],
24
- languageOptions: {
25
- // other options...
26
- parserOptions: {
27
- project: ['./tsconfig.node.json', './tsconfig.app.json'],
28
- tsconfigRootDir: import.meta.dirname,
29
- },
30
- },
31
- })
1
+ # Mitre Form Component
2
+
3
+ Componente de formulário de captação de leads para ser usado em projetos da Mitre Realty. Esta biblioteca oferece um componente pronto para facilitar a implementação de formulários em suas páginas, com validação e integração com APIs para registro de leads.
4
+
5
+ ## 🚨 Avisos importantes
6
+
7
+ Este projeto foi desenvolvido para ser usado diretamente em projetos da Mitre Realty. Algumas partes da biblioteca são essenciais e **não devem ser alteradas ou removidas**.
8
+
9
+ - **Exemplo de uso**: Dentro de `src/app/page.tsx`, há um exemplo de uso do componente, disponível apenas para visualização. Para executar e ver o exemplo em funcionamento, execute o comando:
10
+
11
+ ```bash
12
+ yarn dev
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Itens que NÃO devem ser modificados
18
+
19
+ ### **Código do componente**
20
+
21
+ - O comportamento básico do componente, como a integração com a API e as interações de formulário, **não devem ser alterados**.
22
+
23
+ ### **Dependências**
24
+
25
+ - Certifique-se de que as dependências do `package.json` estão intactas para garantir o funcionamento correto da biblioteca. Alterações nas versões podem causar incompatibilidade com o sistema.
26
+
27
+ ---
28
+
29
+ ## ✅ Itens que DEVEM ser modificados
30
+
31
+ ### 1. **Configuração do Componente**
32
+
33
+ Embora o componente esteja pronto para uso, você pode personalizá-lo ao passar as props adequadas.
34
+
35
+ ### 2. **Componente `MitreFormComponent`**
36
+
37
+ Aqui está um exemplo de uso básico dentro do projeto:
38
+
39
+ ```tsx
40
+ import { MitreFormComponent } from "mitre-form-component-next";
41
+
42
+ <MitreFormComponent
43
+ productId={process.env.VITE_PRODUCT_ID!}
44
+ apiUrl={process.env.VITE_REGISTER_LEADS_URL!}
45
+ apiToken={process.env.VITE_REGISTER_LEADS_TOKEN!}
46
+ utm_source="google"
47
+ utm_medium="cpc"
48
+ utm_campaign="mitre"
49
+ utm_term="mitre"
50
+ showHeader={true} // opcional
51
+ colorPrimary="#FF5733" // opcional
52
+ textColor="#ffffff" // opcional
53
+ />;
32
54
  ```
33
55
 
34
- You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
35
-
36
- ```js
37
- // eslint.config.js
38
- import reactX from 'eslint-plugin-react-x'
39
- import reactDom from 'eslint-plugin-react-dom'
40
-
41
- export default tseslint.config({
42
- plugins: {
43
- // Add the react-x and react-dom plugins
44
- 'react-x': reactX,
45
- 'react-dom': reactDom,
46
- },
47
- rules: {
48
- // other rules...
49
- // Enable its recommended typescript rules
50
- ...reactX.configs['recommended-typescript'].rules,
51
- ...reactDom.configs.recommended.rules,
52
- },
53
- })
56
+ ---
57
+
58
+ ## 🛠️ Tecnologias utilizadas
59
+
60
+ - [React](https://react.dev/)
61
+ - [React Hook Form](https://react-hook-form.com/)
62
+ - [Yup](https://github.com/jquense/yup)
63
+ - [Styled Components](https://styled-components.com/)
64
+ - [Polished](https://polished.js.org/)
65
+ - [React Icons](https://react-icons.github.io/react-icons/)
66
+ - [React Phone Input](https://github.com/bl00mber/react-phone-input-2)
67
+ - [Vite](https://vitejs.dev/)
68
+ - [Tsup](https://tsup.egoist.dev/)
69
+
70
+ ---
71
+
72
+ ## ⚙️ Instalação
73
+
74
+ Este componente pode ser instalado em qualquer projeto React usando o gerenciador de pacotes de sua preferência (npm, yarn, pnpm, etc.).
75
+
76
+ ```bash
77
+ # Usando npm
78
+ npm install mitre-form-component-next
79
+
80
+ # Usando yarn
81
+ yarn add mitre-form-component-next
82
+
83
+ # Usando pnpm
84
+ pnpm add mitre-form-component-next
54
85
  ```
86
+
87
+ Depois de instalar a biblioteca, você pode começar a usá-la diretamente no seu projeto.
88
+
89
+ ---
90
+
91
+ ## 🔧 Props do Componente
92
+
93
+ O `MitreFormComponent` aceita as seguintes props:
94
+
95
+ - **`productId`** (string): O ID do produto relacionado ao empreendimento.
96
+ - **`apiUrl`** (string): URL da API para registro dos leads.
97
+ - **`apiToken`** (string): Token de autenticação da API.
98
+ - **`utm_source`** (string): Parâmetro UTM de origem da campanha (ex: `'google'`).
99
+ - **`utm_medium`** (string): Parâmetro UTM de meio da campanha (ex: `'cpc'`).
100
+ - **`utm_campaign`** (string): Parâmetro UTM de nome da campanha (ex: `'mitre'`).
101
+ - **`utm_term`** (string): Parâmetro UTM de termo da campanha (ex: `'mitre'`).
102
+ - **`showHeader`** (opcional, boolean): Controla se o cabeçalho será mostrado. Padrão: `false`.
103
+ - **`colorPrimary`** (opcional, string): Cor primária do componente. Exemplo: `#FF5733`.
104
+ - **`textColor`** (opcional, string): Cor do texto do componente. Exemplo: `#ffffff`.
105
+
106
+ ---
107
+
108
+ ## 🚨 Componente dentro de um `ErrorBoundary`
109
+
110
+ Recomendamos que o componente `MitreFormComponent` seja sempre utilizado dentro de um `ErrorBoundary` para garantir que a aplicação não quebre em caso de falha no carregamento do componente. Também é preciso usar dynamic do next/dynamics para a importação.
111
+
112
+ Exemplo de uso básico como biblioteca em projetos Nextjs externos:
113
+
114
+ ```tsx
115
+ import dynamic from "next/dynamic";
116
+
117
+ import { ErrorBoundary } from "react-error-boundary";
118
+ const MitreFormComponent = dynamic(
119
+ () =>
120
+ import("mitre-form-component-next").then((mod) => mod.MitreFormComponent),
121
+ { ssr: false }
122
+ );
123
+
124
+ <ErrorBoundary fallback={<div>Erro ao carregar o formulário</div>}>
125
+ <MitreFormComponent
126
+ productId={process.env.NEXT_PUBLIC_PRODUCT_ID!}
127
+ apiUrl={process.env.NEXT_PUBLIC_REGISTER_LEADS_URL!}
128
+ apiToken={process.env.NEXT_PUBLIC_REGISTER_LEADS_TOKEN!}
129
+ utm_source="google"
130
+ utm_medium="cpc"
131
+ utm_campaign="mitre"
132
+ utm_term="mitre"
133
+ />
134
+ </ErrorBoundary>;
135
+ ```
136
+
137
+ Para uso em outros frameworks, fazer o import básico conforme Artigo 2
138
+
139
+ ---
140
+
141
+ ## 🏗️ Como gerar o build e publicar no npm
142
+
143
+ Para gerar o build da biblioteca e publicá-la no npm, siga estas etapas:
144
+
145
+ 1. **Incrementar a versão no `package.json`**:
146
+ No arquivo `package.json`, atualize a versão da biblioteca.
147
+
148
+ 2. **Executar o build**:
149
+
150
+ ```bash
151
+ yarn build
152
+ ```
153
+
154
+ 3. **Publicar no npm**:
155
+
156
+ ```bash
157
+ yarn publish --new-version 0.x.xxx
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 📄 Licença
163
+
164
+ Este projeto é mantido pela **Mitre Realty**. Uso restrito aos colaboradores e parceiros autorizados.
165
+
166
+ ---
167
+
168
+ ## 🧑‍💻 Contato
169
+
170
+ Para dúvidas ou suporte sobre o uso desta biblioteca, entre em contato com o time de desenvolvimento interno da **Mitre Realty**.
171
+
172
+ ---
173
+
174
+ > Mitre Realty © Todos os direitos reservados.