@softize/opus 8.6.7 → 8.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softize/opus",
3
- "version": "8.6.7",
3
+ "version": "8.6.8",
4
4
  "description": "End-to-end action protocol for TypeScript. Single package with subpath exports (core + adapters).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -223,6 +223,23 @@ function CustomSelect(props: Exclude<SelectProps, SelectNativeProps>): React.Rea
223
223
  setQuery(selectedOption?.label ?? '')
224
224
  }, [singleValue, selectedOption, open])
225
225
 
226
+ /**
227
+ * ABRIR limpa a busca.
228
+ *
229
+ * O rótulo do item escolhido vive no mesmo estado que o termo de busca (é o mesmo
230
+ * input). Sem isto, abrir o seletor herda esse rótulo como CONSULTA: a lista nasce
231
+ * filtrada pelo nome do que já está selecionado — e some justamente quando a pessoa
232
+ * abriu pra trocar. Com `onSearch`, o efeito abaixo ainda dispara uma busca remota por
233
+ * essa frase, que quase nunca casa com outra coisa.
234
+ *
235
+ * Visto em produção duas vezes no mesmo dia: o seletor de task da cabine buscando
236
+ * "Sem task", e o de modelo de IA buscando o nome do modelo corrente. Nos dois, a
237
+ * pessoa via lista vazia com dados no servidor.
238
+ */
239
+ React.useEffect(() => {
240
+ if (open) setQuery('')
241
+ }, [open])
242
+
226
243
  // O cmdk carimba o id DELE no input (a11y interna) e descarta o nosso — reaplicamos por
227
244
  // ref, senão o `htmlFor` do Label não acha campo nenhum (clicar no rótulo não focaria).
228
245
  React.useEffect(() => {