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