# 1083 - Front
Req 01
### Incluir novo atributo no formulário de configuração de duplicidade
Evoluir componente packages/customer-module/src/duplicity/view/DuplicityConfigurationForm.jsx para adicionar adicionar um novo switch abaixo do switch que habilita/desabilita a validação de unicidade. Esse novo switch deve respeitar as regras a seguir.
Descrição completa em: [05.01.01.02](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.01.01.02.FrontendMidgard)
---
Req 02
### Criar modal de pré-validação de clientes
Criar componente de formulário, encapsulado em uma modal, que será responsável pela pré-validação de clientes
Descrição completa em: [05.02.01.02](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.02.01.02.FrontendMidgard)
---
Req 03
### Evoluir telas de formulário e lista de Clientes
#### Evoluir tela formulário de cliente
Evoluir componente packages/customer-module/src/customer/form/CustomerForm.jsx para que a inicialização passe a considerar um possível estado recebido através do React Router via propriedade location. Esse estado pode ser recebido durante a criação de novos registros (ele deve ser ignorado em edições) e conterá as informações iniciais do registro que será criado (como nome, telefones, etc). O código a seguir exemplifica o comportamento esperado.
```javascript=
constructor(props) {
const locationEntityState = props.location?.state?.entity;
const defaultEntityState = { ... };
this.state = {
entity: locationEntityState || defaultEntityState,
};
}
```
#### Evoluir tela de lista clientes
* Evoluir componente packages/customer-module/src/customer/list/Customers.jsx com as alterações a seguir
* Quando o usuário clicar no botão de novo cliente (método onNew) e o formulário de pré-validação estiver ativado, deve-se exibir a modal de pré-validação.
* A informação de que o formulário está ativado pode ser recuperado via API /api/customer/duplicate-configurations onde o atributo showPreRegistrationForm, do tipo booleano, indica se deve ser exibido ou não. Caso o atributo seja undefined ou nulo, assumir valor false como padrão. Vale salientar que a API em questão é paginada e deve-se usar o registro em que o atributo entity possui o valor customer (filtrar via RestQuery ou similar).
* Quando o formulário de pré-validação estiver desativado, o clique no botão de novo registro deve manter o comportamento atual de redirecionar para o formulário de novos registros de forma direta.
---
Req 04
### Criar modal de pré-validação de leads
Criar componente de formulário, encapsulado em uma modal, que será responsável pela pré-validação de leads
Descrição completa em: [05.02.02.02](https://tdn.totvs.com/pages/viewpage.action?pageId=687149042#An%C3%A1liset%C3%A9cnicaparaavalida%C3%A7%C3%A3odeduplicidadepr%C3%A9viadeLeadseClientes(ME031220210747)-05.02.02.02.FrontendMidgard)
---
Req 05
### Evoluir telas de formulário e lista de Leads
#### Evoluir tela formulário de lead
Evoluir componente packages/customer-module/src/lead/form/LeadForm.jsx para que a inicialização passe a considerar um possível estado recebido através do React Router via propriedade location. Esse estado pode ser recebido durante a criação de novos registros (ele deve ser ignorado em edições) e conterá as informações iniciais do registro que será criado (como nome, telefones, etc). O código a seguir exemplifica o comportamento esperado.
```javascript=
constructor(props) {
const locationEntityState = props.location?.state?.entity;
const defaultEntityState = { ... };
this.state = {
entity: locationEntityState || defaultEntityState,
};
}
```
#### Evoluir tela de lista clientes
* Evoluir componente packages/customer-module/src/lead/list/Leads.jsx com as alterações a seguir
* Quando o usuário clicar no botão de novo cliente (método onNew) e o formulário de pré-validação estiver ativado, deve-se exibir a modal de pré-validação.
* A informação de que o formulário está ativado pode ser recuperado via API /api/customer/duplicate-configurations onde o atributo showPreRegistrationForm, do tipo booleano, indica se deve ser exibido ou não. Caso o atributo seja undefined ou nulo, assumir valor false como padrão. Vale salientar que a API em questão é paginada e deve-se usar o registro em que o atributo entity possui o valor customer (filtrar via RestQuery ou similar).
* Quando o formulário de pré-validação estiver desativado, o clique no botão de novo registro deve manter o comportamento atual de redirecionar para o formulário de novos registros de forma direta.