From 06ab7369bda97783734aa2e6ee05998b537df8a0 Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Sun, 21 Dec 2025 09:19:14 -0300 Subject: [PATCH] fix: improve error handling in 'Almoxarifado' product search to notify users when server function is not found, and update API imports for better functionality --- .../materiais/cadastro/+page.svelte | 17 ++++++++++++++--- packages/backend/convex/_generated/api.d.ts | 2 ++ .../backend/convex/actions/buscarInfoProduto.ts | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/almoxarifado/materiais/cadastro/+page.svelte b/apps/web/src/routes/(dashboard)/almoxarifado/materiais/cadastro/+page.svelte index 7b6d1ed..a8e0d3f 100644 --- a/apps/web/src/routes/(dashboard)/almoxarifado/materiais/cadastro/+page.svelte +++ b/apps/web/src/routes/(dashboard)/almoxarifado/materiais/cadastro/+page.svelte @@ -89,9 +89,20 @@ } } } catch (err) { - const message = err instanceof Error ? err.message : 'Erro ao buscar produto'; - if (mostrarMensagemSucesso) { - mostrarMensagem('error', message); + const errorMessage = err instanceof Error ? err.message : 'Erro ao buscar produto'; + + // Verificar se é erro de função não encontrada + if (errorMessage.includes('Could not find public function')) { + const message = 'Servidor Convex precisa ser reiniciado. A função de busca por código de barras não foi encontrada.'; + if (mostrarMensagemSucesso) { + mostrarMensagem('error', message); + } + console.error('Erro: Servidor Convex precisa ser reiniciado para reconhecer a nova função buscarMaterialPorCodigoBarras'); + } else { + const message = errorMessage; + if (mostrarMensagemSucesso) { + mostrarMensagem('error', message); + } } } finally { buscandoProduto = false; diff --git a/packages/backend/convex/_generated/api.d.ts b/packages/backend/convex/_generated/api.d.ts index d319dd1..539624f 100644 --- a/packages/backend/convex/_generated/api.d.ts +++ b/packages/backend/convex/_generated/api.d.ts @@ -9,6 +9,7 @@ */ import type * as acoes from "../acoes.js"; +import type * as actions_buscarInfoProduto from "../actions/buscarInfoProduto.js"; import type * as actions_email from "../actions/email.js"; import type * as actions_linkPreview from "../actions/linkPreview.js"; import type * as actions_pushNotifications from "../actions/pushNotifications.js"; @@ -106,6 +107,7 @@ import type { declare const fullApi: ApiFromModules<{ acoes: typeof acoes; + "actions/buscarInfoProduto": typeof actions_buscarInfoProduto; "actions/email": typeof actions_email; "actions/linkPreview": typeof actions_linkPreview; "actions/pushNotifications": typeof actions_pushNotifications; diff --git a/packages/backend/convex/actions/buscarInfoProduto.ts b/packages/backend/convex/actions/buscarInfoProduto.ts index aac8974..8fd4827 100644 --- a/packages/backend/convex/actions/buscarInfoProduto.ts +++ b/packages/backend/convex/actions/buscarInfoProduto.ts @@ -1,3 +1,5 @@ +'use node'; + import { action } from '../_generated/server'; import { v } from 'convex/values';