Skip to content

Bugfix/multiselect reactivity#1088

Draft
IhGori wants to merge 6 commits into
mainfrom
bugfix/multiselect-reactivity
Draft

Bugfix/multiselect reactivity#1088
IhGori wants to merge 6 commits into
mainfrom
bugfix/multiselect-reactivity

Conversation

@IhGori
Copy link
Copy Markdown
Contributor

@IhGori IhGori commented May 11, 2026

Por favor, verifique se o seu pull request está de acordo com o checklist abaixo:

  • A implementação feita possui testes (Caso haja um motivo para não haver testes/haver apenas testes de snapshot, descrever abaixo)
  • A documentação no mdx foi feita ou atualizada, caso necessário
  • O eslint passou localmente

1 - Resumo

  • Adiciona safe guards no multiselect para evitar erros de acesso a propriedades sem que elas estejam disponívels como também optional chaining. Desta forma espera-se que não seja mais necessário verificações em seu uso de por exemplo:
v-if="options.length > 0"

Para ter sua renderização.

2 - Tipo de pull request

  • 🧱 Novo componente
  • ✨ Nova feature ou melhoria
  • 🐛 Fix
  • 👨‍💻 Refatoração
  • 📝 Documentação
  • 🎨 Estilo
  • 🤖 Build ou CI/CD

3 - Esse PR fecha alguma issue? Favor referenciá-la

Não

4 - Quais são os passos para avaliar o pull request?

  • Verifique o seu uso em um projeto real e que continua a funcionar como esperado.

5 - Imagem ou exemplo de uso:

6 - Esse pull request adiciona breaking changes?

  • Sim
  • Não

@github-actions github-actions Bot added the 🐛 Bug Algo não está funcionando label May 11, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 11, 2026

Greptile Summary

Este PR adiciona guards de reatividade ao componente Multiselect para evitar erros de acesso a propriedades quando as options ou o modelValue ainda não estão disponíveis, eliminando a necessidade de verificações externas como v-if="options.length > 0".

  • Adiciona optional chaining (?.[optionsField]) no template e no computed selectedFancyMessage, e um guard Array.isArray no watcher de selectedValue.
  • Introduz um watcher deep: true / immediate: true para options, que sincroniza internalOptions e chama updateRenderOptions() quando as opções mudam após itens já estarem selecionados.
  • Protege mounted() contra um modelValue que não seja um array, atribuindo [] como fallback.

Confidence Score: 3/5

O PR não deve ser mergeado sem remover o console.log esquecido no mounted().

As melhorias de reatividade são sólidas, mas um console.log de depuração foi deixado no código e irá poluir o console em todos os ambientes de produção a cada montação do componente.

src/components/Multiselect.vue — linha 420 precisa ter o console.log removido antes do merge.

Important Files Changed

Filename Overview
src/components/Multiselect.vue Adiciona guards de segurança (optional chaining, Array.isArray, tratamento de modelValue inválido) e um watcher immediate: true para as options. Um console.log de depuração foi esquecido no hook mounted() e precisa ser removido antes do merge.
package.json Bump de versão de 3.158.0 para 3.158.1 (patch), consistente com a natureza do fix.
package-lock.json Atualizado para refletir a nova versão 3.158.1; sem mudanças de dependências.

Reviews (1): Last reviewed commit: "feat: Adiciona safe guards no componente..." | Re-trigger Greptile

Comment thread src/components/Multiselect.vue
lucasn4s
lucasn4s previously approved these changes May 11, 2026
…ing e ajustar lógicas de remoção de itens selecionados, como também checkbox customizado quando é limpo o modelValue
Copy link
Copy Markdown
Contributor

@jvictordev1 jvictordev1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mesmo selecionando as opções visualmente o estado do multiselect não fica condizente com o que foi selecionado.

Gravacao.de.tela.de.2026-05-12.13-17-24.webm

@IhGori IhGori marked this pull request as draft May 12, 2026 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐛 Bug Algo não está funcionando

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants