---
# System prepended metadata

title: 1083 - Front

---

# 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.