po-ui / po-angular

Biblioteca de componentes Angular.
https://po-ui.io
MIT License
919 stars 212 forks source link

Dynamic Form: Validate não funciona no PO Checkbox Group #1931

Open HorselessName opened 10 months ago

HorselessName commented 10 months ago

Reprodução

Quando usamos o componente DynamicForm com as opções options e optionsMulti nas opções, o validate não funciona quando tem apenas 3 opções ou menos.

Não funciona nem configurando pelo TypeScript e nem configurando no Template, com [p-validate].

Reprodução Criada no StackBlitz: Descomente e Comente a linha 38 do App Component para ver que o validate só começa a funcionar quando mais de 3 opções estão disponíveis na lista Options.

https://stackblitz.com/edit/po-ui-funb2y?devToolsHeight=33&file=src%2Fapp%2Fapp.component.ts

Quando eu acrescento mais de três options, ele funciona. O componente é o Dynamic Form:

https://po-ui.io/documentation/po-dynamic-form

E a propriedade que tô tentando usar é o validate. A ideia é quando eu selecionar várias opções, ele mostrar no log as opções selecionadas E depois disso, fazer algo com esses dados ou poder enviar para um botão ou outro componente...

Mas só funciona quando tem mais de 3 opções. Se tem 3 ou menos, ele buga e não aplica o validate.

  camposDynamicForm: PoDynamicFormField[] = [
    {
      property: 'listaDeUsuarios',
      label: 'Selecione os Usuários...',
      gridColumns: 12,
      order: 1,
      required: true,
      hideSelectAll: true,
      optionsMulti: true,
      options: [
        { label: 'TOTVS USER', value: 'TOTVS USER' },
        { label: 'RAUL', value: 'RAUL' },
        { label: 'PO UI', value: 'PO UI' },

        // Só quando tem mais de três dados que o `validate` funciona.
        // { label: 'HABILITAR VALIDATOR', value: 'HABILITAR VALIDATOR' },
      ],
      validate: this.validarUsuariosSelecionados.bind(this),
    },
  ];

  validarUsuariosSelecionados(usuariosSelecionados: any) {
    console.log(`Usuarios Selecionados no Multi Select / Group Checkbox:
    ${JSON.stringify(usuariosSelecionados)}`);
  }

Tem um comportamento estranho também. Se eu adiciono MAIS uma opção mas que contenham os mesmos nomes / valores que outras opções, ele contabiliza como uma nova opção e o validate começa a funcionar, de uma forma esquisita.

Gravei um vídeo pra mostrar esse exemplo e o outro também: https://youtu.be/OVAvsK0AxTY

felipepetuco commented 10 months ago

Obrigado pelo contato, vamos analisar a issue e lhe daremos retorno o mais breve possível.