refactor: improve type safety and error handling in vacation management components
- Updated the `AprovarFerias.svelte` component to use specific types for `solicitacao` and `gestorId`, enhancing type safety. - Improved error handling by refining catch blocks to handle errors more accurately. - Made minor adjustments to ensure consistent code formatting and readability across the component.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<script lang="ts">
|
||||
import { useConvexClient } from "convex-svelte";
|
||||
import { api } from "@sgse-app/backend/convex/_generated/api";
|
||||
import type { Id, Doc } from "@sgse-app/backend/convex/_generated/dataModel";
|
||||
|
||||
interface Periodo {
|
||||
dataInicio: string;
|
||||
@@ -8,9 +9,14 @@
|
||||
diasCorridos: number;
|
||||
}
|
||||
|
||||
type SolicitacaoFerias = Doc<"solicitacoesFerias"> & {
|
||||
funcionario?: Doc<"funcionarios"> | null;
|
||||
gestor?: Doc<"usuarios"> | null;
|
||||
};
|
||||
|
||||
interface Props {
|
||||
solicitacao: any;
|
||||
gestorId: string;
|
||||
solicitacao: SolicitacaoFerias;
|
||||
gestorId: Id<"usuarios">;
|
||||
onSucesso?: () => void;
|
||||
onCancelar?: () => void;
|
||||
}
|
||||
@@ -27,7 +33,7 @@
|
||||
|
||||
$effect(() => {
|
||||
if (modoAjuste && periodos.length === 0) {
|
||||
periodos = solicitacao.periodos.map((p: any) => ({...p}));
|
||||
periodos = solicitacao.periodos.map((p) => ({...p}));
|
||||
}
|
||||
});
|
||||
|
||||
@@ -59,12 +65,12 @@
|
||||
|
||||
await client.mutation(api.ferias.aprovar, {
|
||||
solicitacaoId: solicitacao._id,
|
||||
gestorId: gestorId as any,
|
||||
gestorId: gestorId,
|
||||
});
|
||||
|
||||
if (onSucesso) onSucesso();
|
||||
} catch (e: any) {
|
||||
erro = e.message || "Erro ao aprovar solicitação";
|
||||
} catch (e) {
|
||||
erro = e instanceof Error ? e.message : String(e);
|
||||
} finally {
|
||||
processando = false;
|
||||
}
|
||||
@@ -82,13 +88,13 @@
|
||||
|
||||
await client.mutation(api.ferias.reprovar, {
|
||||
solicitacaoId: solicitacao._id,
|
||||
gestorId: gestorId as any,
|
||||
gestorId: gestorId,
|
||||
motivoReprovacao,
|
||||
});
|
||||
|
||||
if (onSucesso) onSucesso();
|
||||
} catch (e: any) {
|
||||
erro = e.message || "Erro ao reprovar solicitação";
|
||||
} catch (e) {
|
||||
erro = e instanceof Error ? e.message : String(e);
|
||||
} finally {
|
||||
processando = false;
|
||||
}
|
||||
@@ -101,13 +107,13 @@
|
||||
|
||||
await client.mutation(api.ferias.ajustarEAprovar, {
|
||||
solicitacaoId: solicitacao._id,
|
||||
gestorId: gestorId as any,
|
||||
gestorId: gestorId,
|
||||
novosPeriodos: periodos,
|
||||
});
|
||||
|
||||
if (onSucesso) onSucesso();
|
||||
} catch (e: any) {
|
||||
erro = e.message || "Erro ao ajustar e aprovar solicitação";
|
||||
} catch (e) {
|
||||
erro = e instanceof Error ? e.message : String(e);
|
||||
} finally {
|
||||
processando = false;
|
||||
}
|
||||
|
||||
@@ -110,10 +110,16 @@ class AuthStore {
|
||||
{}
|
||||
);
|
||||
|
||||
if (usuarioAtualizado && this.state.usuario) {
|
||||
if (usuarioAtualizado) {
|
||||
// Preservar role e primeiroAcesso do estado atual
|
||||
this.state.usuario = {
|
||||
...this.state.usuario,
|
||||
...usuarioAtualizado,
|
||||
role: this.state.usuario?.role || {
|
||||
_id: "",
|
||||
nome: "Usuário",
|
||||
nivel: 999,
|
||||
},
|
||||
primeiroAcesso: this.state.usuario?.primeiroAcesso ?? false,
|
||||
};
|
||||
|
||||
localStorage.setItem(
|
||||
|
||||
@@ -39,7 +39,11 @@
|
||||
}
|
||||
});
|
||||
|
||||
$inspect(authStore.usuario?.funcionarioId);
|
||||
// Debug: Verificar funcionarioId
|
||||
$effect(() => {
|
||||
console.log("🔍 [Perfil] funcionarioId:", authStore.usuario?.funcionarioId);
|
||||
console.log("🔍 [Perfil] Usuário completo:", authStore.usuario);
|
||||
});
|
||||
|
||||
// Queries
|
||||
const funcionarioQuery = $derived(
|
||||
|
||||
Reference in New Issue
Block a user