refactor: replace useMutation with useConvexClient for API calls in LGPD-related pages to streamline data handling and improve consistency across components

This commit is contained in:
2025-12-02 09:55:28 -03:00
parent e460b114ed
commit 0c507f41da
6 changed files with 25 additions and 26 deletions

View File

@@ -1,14 +1,14 @@
<script lang="ts">
import { resolve } from '$app/paths';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
import { Shield, CheckCircle, XCircle, Calendar, AlertCircle } from 'lucide-svelte';
import { format } from 'date-fns';
import { ptBR } from 'date-fns/locale';
import { toast } from 'svelte-sonner';
const client = useConvexClient();
const consentimentos = useQuery(api.lgpd.listarConsentimentos, {});
const revogarConsentimento = useMutation(api.lgpd.revogarConsentimento);
let revogando = $state<string | null>(null);
@@ -30,7 +30,7 @@
revogando = tipo;
try {
await revogarConsentimento({ tipo: tipo as any });
await client.mutation(api.lgpd.revogarConsentimento, { tipo: tipo as 'termo_uso' | 'politica_privacidade' | 'comunicacoes' | 'compartilhamento_dados' });
toast.success('Consentimento revogado com sucesso');
} catch (error: any) {
toast.error(error.message || 'Erro ao revogar consentimento');

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import { resolve } from '$app/paths';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
import {
Shield,
@@ -24,13 +24,13 @@
| 'revogacao_consentimento'
| 'informacao_compartilhamento';
const tipoSelecionado = $state<TipoSolicitacao | null>(null);
const dadosSolicitados = $state('');
const observacoes = $state('');
const carregando = $state(false);
let tipoSelecionado = $state<TipoSolicitacao | null>(null);
let dadosSolicitados = $state('');
let observacoes = $state('');
let carregando = $state(false);
const client = useConvexClient();
const minhasSolicitacoes = useQuery(api.lgpd.listarMinhasSolicitacoes, {});
const criarSolicitacao = useMutation(api.lgpd.criarSolicitacao);
const exportarDados = useQuery(api.lgpd.exportarDadosUsuario, {});
const tiposSolicitacao: Array<{ valor: TipoSolicitacao; label: string; descricao: string }> = [
@@ -105,7 +105,7 @@
carregando = true;
try {
await criarSolicitacao({
await client.mutation(api.lgpd.criarSolicitacao, {
tipo: tipoSelecionado,
dadosSolicitados: dadosSolicitados || undefined,
observacoes: observacoes || undefined

View File

@@ -2,7 +2,7 @@
import { resolve } from '$app/paths';
import { page } from '$app/state';
import { Shield, CheckCircle, AlertCircle, FileText } from 'lucide-svelte';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
let aceito = $state(false);
@@ -11,8 +11,8 @@
let sucesso = $state(false);
// Verificar se já aceitou o termo
const client = useConvexClient();
const consentimentoQuery = useQuery(api.lgpd.verificarConsentimento, { tipo: 'termo_uso' });
const registrarConsentimento = useMutation(api.lgpd.registrarConsentimento);
const jaAceitou = $derived(
consentimentoQuery?.data?.aceito === true &&
@@ -50,7 +50,7 @@
erro = null;
try {
await registrarConsentimento({
await client.mutation(api.lgpd.registrarConsentimento, {
tipo: 'termo_uso',
aceito: true,
versao: versaoTermoAtual

View File

@@ -1,12 +1,12 @@
<script lang="ts">
import { resolve } from '$app/paths';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
import { Shield, Save, Mail, Phone, User, Calendar, ToggleLeft, ToggleRight } from 'lucide-svelte';
import { toast } from 'svelte-sonner';
const client = useConvexClient();
const config = useQuery(api.lgpd.obterConfiguracaoLGPD, {});
const atualizarConfig = useMutation(api.lgpd.atualizarConfiguracaoLGPD);
let encarregadoNome = $state('');
let encarregadoEmail = $state('');
@@ -36,7 +36,7 @@
carregando = true;
try {
await atualizarConfig({
await client.mutation(api.lgpd.atualizarConfiguracaoLGPD, {
encarregadoNome: encarregadoNome || undefined,
encarregadoEmail: encarregadoEmail || undefined,
encarregadoTelefone: encarregadoTelefone || undefined,

View File

@@ -1,12 +1,13 @@
<script lang="ts">
import { resolve } from '$app/paths';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
import { Shield, FileText, Plus, CheckCircle, XCircle } from 'lucide-svelte';
import { format } from 'date-fns';
import { ptBR } from 'date-fns/locale';
import { toast } from 'svelte-sonner';
const client = useConvexClient();
const registros = useQuery(api.lgpd.listarRegistrosTratamento, { ativo: undefined });
let mostrarFormulario = $state(false);
@@ -21,8 +22,6 @@
let descricao = $state('');
let carregando = $state(false);
const criarROT = useMutation(api.lgpd.criarRegistroTratamento);
const categoriasDadosDisponiveis = [
'dados_identificacao',
'dados_contato',
@@ -63,7 +62,7 @@
carregando = true;
try {
await criarROT({
await client.mutation(api.lgpd.criarRegistroTratamento, {
finalidade: finalidade.trim(),
baseLegal: baseLegal.trim(),
categoriasDados,

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import { resolve } from '$app/paths';
import { useQuery, useMutation } from 'convex-svelte';
import { useQuery, useConvexClient } from 'convex-svelte';
import { api } from '@sgse-app/backend/convex/_generated/api';
import type { Id } from '@sgse-app/backend/convex/_generated/dataModel';
import {
@@ -31,11 +31,11 @@
let tipoFiltro = $state<TipoFiltro>(null);
let termoBusca = $state('');
const client = useConvexClient();
const solicitacoes = useQuery(api.lgpd.listarSolicitacoes, {
status: statusFiltro || undefined,
tipo: tipoFiltro || undefined
});
const responderSolicitacao = useMutation(api.lgpd.responderSolicitacao);
let solicitacaoSelecionada = $state<string | null>(null);
let resposta = $state('');
@@ -106,7 +106,7 @@
carregando = true;
try {
await responderSolicitacao({
await client.mutation(api.lgpd.responderSolicitacao, {
solicitacaoId: solicitacaoSelecionada as Id<'solicitacoesLGPD'>,
resposta: resposta.trim(),
status: statusResposta