@hed-hog/finance 0.0.229 → 0.0.231

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.
@@ -1,6 +1,16 @@
1
1
  'use client';
2
2
 
3
3
  import { Page, PageHeader } from '@/components/entity-list';
4
+ import {
5
+ AlertDialog,
6
+ AlertDialogAction,
7
+ AlertDialogCancel,
8
+ AlertDialogContent,
9
+ AlertDialogDescription,
10
+ AlertDialogFooter,
11
+ AlertDialogHeader,
12
+ AlertDialogTitle,
13
+ } from '@/components/ui/alert-dialog';
4
14
  import { Badge } from '@/components/ui/badge';
5
15
  import { Button } from '@/components/ui/button';
6
16
  import {
@@ -97,6 +107,19 @@ function NovaContaSheet({
97
107
  }) {
98
108
  const { request, showToastHandler } = useApp();
99
109
 
110
+ const createSuccessMessage = t.has('messages.createSuccess')
111
+ ? t('messages.createSuccess')
112
+ : 'Conta bancária cadastrada com sucesso';
113
+ const createErrorMessage = t.has('messages.createError')
114
+ ? t('messages.createError')
115
+ : 'Erro ao cadastrar conta bancária';
116
+ const updateSuccessMessage = t.has('messages.updateSuccess')
117
+ ? t('messages.updateSuccess')
118
+ : 'Conta bancária atualizada com sucesso';
119
+ const updateErrorMessage = t.has('messages.updateError')
120
+ ? t('messages.updateError')
121
+ : 'Erro ao atualizar conta bancária';
122
+
100
123
  const form = useForm<BankAccountFormValues>({
101
124
  resolver: zodResolver(bankAccountFormSchema),
102
125
  defaultValues: {
@@ -171,16 +194,12 @@ function NovaContaSheet({
171
194
  onEditingAccountChange(null);
172
195
  showToastHandler?.(
173
196
  'success',
174
- editingAccount
175
- ? 'Conta bancária atualizada com sucesso'
176
- : 'Conta bancária cadastrada com sucesso'
197
+ editingAccount ? updateSuccessMessage : createSuccessMessage
177
198
  );
178
199
  } catch {
179
200
  showToastHandler?.(
180
201
  'error',
181
- editingAccount
182
- ? 'Erro ao atualizar conta bancária'
183
- : 'Erro ao cadastrar conta bancária'
202
+ editingAccount ? updateErrorMessage : createErrorMessage
184
203
  );
185
204
  }
186
205
  };
@@ -356,13 +375,33 @@ function NovaContaSheet({
356
375
 
357
376
  export default function ContasBancariasPage() {
358
377
  const t = useTranslations('finance.BankAccountsPage');
359
- const { request, showToastHandler } = useApp();
378
+ const { request, showToastHandler, currentLocaleCode } = useApp();
379
+
380
+ const deleteSuccessMessage = t.has('messages.deleteSuccess')
381
+ ? t('messages.deleteSuccess')
382
+ : 'Conta bancária inativada com sucesso';
383
+ const deleteErrorMessage = t.has('messages.deleteError')
384
+ ? t('messages.deleteError')
385
+ : 'Erro ao inativar conta bancária';
386
+ const deleteDialogTitle = t.has('deleteDialog.title')
387
+ ? t('deleteDialog.title')
388
+ : 'Inativar conta bancária';
389
+ const deleteDialogDescription = t.has('deleteDialog.description')
390
+ ? t('deleteDialog.description')
391
+ : 'Deseja realmente inativar esta conta bancária?';
392
+ const deleteDialogConfirm = t.has('deleteDialog.confirm')
393
+ ? t('deleteDialog.confirm')
394
+ : 'Inativar';
395
+
360
396
  const [sheetOpen, setSheetOpen] = useState(false);
361
397
  const [editingAccount, setEditingAccount] = useState<BankAccount | null>(
362
398
  null
363
399
  );
400
+ const [accountIdToDelete, setAccountIdToDelete] = useState<string | null>(
401
+ null
402
+ );
364
403
  const { data: contasBancarias, refetch } = useQuery<BankAccount[]>({
365
- queryKey: ['finance-bank-accounts'],
404
+ queryKey: ['finance-bank-accounts', currentLocaleCode],
366
405
  queryFn: async () => {
367
406
  const response = await request({
368
407
  url: '/finance/bank-accounts',
@@ -371,7 +410,7 @@ export default function ContasBancariasPage() {
371
410
 
372
411
  return (response.data || []) as BankAccount[];
373
412
  },
374
- initialData: [],
413
+ placeholderData: [],
375
414
  });
376
415
 
377
416
  const tipoConfig = {
@@ -399,25 +438,22 @@ export default function ContasBancariasPage() {
399
438
  setSheetOpen(true);
400
439
  };
401
440
 
402
- const handleDelete = async (accountId: string) => {
403
- const confirmed = window.confirm(
404
- 'Deseja realmente inativar esta conta bancária?'
405
- );
406
-
407
- if (!confirmed) {
441
+ const handleDelete = async () => {
442
+ if (!accountIdToDelete) {
408
443
  return;
409
444
  }
410
445
 
411
446
  try {
412
447
  await request({
413
- url: `/finance/bank-accounts/${accountId}`,
448
+ url: `/finance/bank-accounts/${accountIdToDelete}`,
414
449
  method: 'DELETE',
415
450
  });
416
451
 
417
452
  await refetch();
418
- showToastHandler?.('success', 'Conta bancária inativada com sucesso');
453
+ showToastHandler?.('success', deleteSuccessMessage);
454
+ setAccountIdToDelete(null);
419
455
  } catch {
420
- showToastHandler?.('error', 'Erro ao inativar conta bancária');
456
+ showToastHandler?.('error', deleteErrorMessage);
421
457
  }
422
458
  };
423
459
 
@@ -448,6 +484,30 @@ export default function ContasBancariasPage() {
448
484
  onEditingAccountChange={setEditingAccount}
449
485
  />
450
486
 
487
+ <AlertDialog
488
+ open={!!accountIdToDelete}
489
+ onOpenChange={(open) => {
490
+ if (!open) {
491
+ setAccountIdToDelete(null);
492
+ }
493
+ }}
494
+ >
495
+ <AlertDialogContent>
496
+ <AlertDialogHeader>
497
+ <AlertDialogTitle>{deleteDialogTitle}</AlertDialogTitle>
498
+ <AlertDialogDescription>
499
+ {deleteDialogDescription}
500
+ </AlertDialogDescription>
501
+ </AlertDialogHeader>
502
+ <AlertDialogFooter>
503
+ <AlertDialogCancel>{t('common.cancel')}</AlertDialogCancel>
504
+ <AlertDialogAction onClick={handleDelete}>
505
+ {deleteDialogConfirm}
506
+ </AlertDialogAction>
507
+ </AlertDialogFooter>
508
+ </AlertDialogContent>
509
+ </AlertDialog>
510
+
451
511
  <div className="grid gap-4 md:grid-cols-2">
452
512
  <Card>
453
513
  <CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
@@ -592,7 +652,7 @@ export default function ContasBancariasPage() {
592
652
  <Button
593
653
  variant="outline"
594
654
  size="sm"
595
- onClick={() => handleDelete(conta.id)}
655
+ onClick={() => setAccountIdToDelete(conta.id)}
596
656
  >
597
657
  <Trash2 className="h-4 w-4" />
598
658
  </Button>
@@ -446,8 +446,22 @@
446
446
  "common": {
447
447
  "select": "Select...",
448
448
  "cancel": "Cancel",
449
+ "edit": "Edit",
449
450
  "save": "Save"
450
451
  },
452
+ "messages": {
453
+ "createSuccess": "Bank account created successfully",
454
+ "createError": "Failed to create bank account",
455
+ "updateSuccess": "Bank account updated successfully",
456
+ "updateError": "Failed to update bank account",
457
+ "deleteSuccess": "Bank account deactivated successfully",
458
+ "deleteError": "Failed to deactivate bank account"
459
+ },
460
+ "deleteDialog": {
461
+ "title": "Deactivate bank account",
462
+ "description": "Do you really want to deactivate this bank account?",
463
+ "confirm": "Deactivate"
464
+ },
451
465
  "types": {
452
466
  "corrente": "Checking Account",
453
467
  "poupanca": "Savings Account",
@@ -446,8 +446,22 @@
446
446
  "common": {
447
447
  "select": "Selecione...",
448
448
  "cancel": "Cancelar",
449
+ "edit": "Editar",
449
450
  "save": "Salvar"
450
451
  },
452
+ "messages": {
453
+ "createSuccess": "Conta bancária cadastrada com sucesso",
454
+ "createError": "Erro ao cadastrar conta bancária",
455
+ "updateSuccess": "Conta bancária atualizada com sucesso",
456
+ "updateError": "Erro ao atualizar conta bancária",
457
+ "deleteSuccess": "Conta bancária inativada com sucesso",
458
+ "deleteError": "Erro ao inativar conta bancária"
459
+ },
460
+ "deleteDialog": {
461
+ "title": "Inativar conta bancária",
462
+ "description": "Deseja realmente inativar esta conta bancária?",
463
+ "confirm": "Inativar"
464
+ },
451
465
  "types": {
452
466
  "corrente": "Conta Corrente",
453
467
  "poupanca": "Poupança",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/finance",
3
- "version": "0.0.229",
3
+ "version": "0.0.231",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,8 +9,8 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/api-prisma": "0.0.4",
13
12
  "@hed-hog/api-locale": "0.0.11",
13
+ "@hed-hog/api-prisma": "0.0.4",
14
14
  "@hed-hog/api-pagination": "0.0.5",
15
15
  "@hed-hog/tag": "0.0.223",
16
16
  "@hed-hog/api": "0.0.3",