refactor(Component): Ajuste em componentes diversos

This commit is contained in:
Keven Willian Pereira de Souza 2025-10-06 09:45:09 -03:00
parent f2b2181136
commit 4b0c7e651d
18 changed files with 57 additions and 55 deletions

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TImovelColumns from './TImovelColumns';
import TImovelTableInterface from '../../interfaces/TImovel/TImovelTabelInterface';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TImovelUnidadeColumns from './TImovelUnidadeRuralColumns';
import TImovelUnidadeRuralTableInterface from '@/packages/administrativo/interfaces/TImovelUnidade/TImovelUnidadeRural/TImovelUnidadeRuralTableInterface';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TImovelUnidadeColumns from './TImovelUnidadeUrbanoColumns';
import TImovelUnidadeUrbanoTableInterface from '@/packages/administrativo/interfaces/TImovelUnidade/TImovelUnidadeUrbano/TImovelUnidadeUrbanoTableInterface';
/**

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaFisicaTableInterface from '@/packages/administrativo/interfaces/TPessoa/TPessoaFisica/TPessoaFisicaTableInterface';
import { TPessoaFisicaColumns } from './TPessoaFisicaColumns';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaJuridicaColumns from './TPessoaJuridicaColumns';
import TPessoaJuridicaTableInterface from '@/packages/administrativo/interfaces/TPessoa/TPessoaJuridica/TPessoaJuridicaTableInterface';

View file

@ -76,7 +76,7 @@ import {
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { DropdownMenuContent } from '@radix-ui/react-dropdown-menu';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import { Checkbox } from '@/components/ui/checkbox';
import { useTPessoaFisicaIndexHook } from '../../hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook';
import { useTPessoaRepresentanteFormHook } from '../../hooks/TPessoaRepresentante/useTPessoaRepresentanteFormHook';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaRepresentanteColumns from './TPessoaRepresentanteColumns';
import TPessoaRepresentanteTableInterface from '../../interfaces/TPessoaRepresentante/TPessoaRepresentanteTableInterface';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/dataTable';
import TImovelColumns from './TImovelColumns';
import TImovelTableInterface from '../../../interfaces/TImovel/TImovelTabelInterface';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TImovelUnidadeColumns from './TImovelUnidadeRuralColumns';
import TImovelUnidadeRuralTableInterface from '@/packages/administrativo/interfaces/TImovelUnidade/TImovelUnidadeRural/TImovelUnidadeRuralTableInterface';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TImovelUnidadeColumns from './TImovelUnidadeUrbanoColumns';
import TImovelUnidadeUrbanoTableInterface from '@/packages/administrativo/interfaces/TImovelUnidade/TImovelUnidadeUrbano/TImovelUnidadeUrbanoTableInterface';
/**

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaFisicaTableInterface from '@/packages/administrativo/interfaces/TPessoa/TPessoaFisica/TPessoaFisicaTableInterface';
import { TPessoaFisicaColumns } from './TPessoaFisicaColumns';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaJuridicaColumns from './TPessoaJuridicaColumns';
import TPessoaJuridicaTableInterface from '@/packages/administrativo/interfaces/TPessoa/TPessoaJuridica/TPessoaJuridicaTableInterface';

View file

@ -76,7 +76,7 @@ import {
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { DropdownMenuContent } from '@radix-ui/react-dropdown-menu';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import { Checkbox } from '@/components/ui/checkbox';
import { useTPessoaFisicaIndexHook } from '../../../hooks/TPessoa/TPessoaFisica/useTPessoaFisicaIndexHook';
import { useTPessoaRepresentanteFormHook } from '../../../hooks/TPessoaRepresentante/useTPessoaRepresentanteFormHook';

View file

@ -1,6 +1,6 @@
'use client';
import { DataTable } from '@/app/_components/dataTable/DataTable';
import { DataTable } from '@/shared/components/dataTable/DataTable';
import TPessoaRepresentanteColumns from './TPessoaRepresentanteColumns';
import TPessoaRepresentanteTableInterface from '../../../interfaces/TPessoaRepresentante/TPessoaRepresentanteTableInterface';

View file

@ -36,17 +36,7 @@ import {
ChevronRightIcon,
EyeIcon,
} from 'lucide-react';
// Tipagem genérica
export interface DataTableProps<TData> {
data?: TData[] | null;
columns: ColumnDef<TData, any>[];
filterColumn?: string; // Define qual coluna será usada para filtro
filterPlaceholder?: string;
onEdit?: (item: TData) => void;
onDelete?: (item: TData) => void;
onRowClick?: (item: TData) => void;
}
import DataTableInterface from './interfaces/DataTableInterface';
export function DataTable<TData>({
data,
@ -56,7 +46,7 @@ export function DataTable<TData>({
onEdit,
onDelete,
onRowClick,
}: DataTableProps<TData>) {
}: DataTableInterface<TData>) {
// Garante que data sempre seja array
const safeData = Array.isArray(data) ? data : [];
@ -73,33 +63,33 @@ export function DataTable<TData>({
...columns,
...(onEdit || onDelete
? [
{
id: 'actions',
header: 'Ações',
cell: ({ row }: any) => (
<div className="flex gap-2">
{onEdit && (
<Button
variant="ghost"
size="sm"
onClick={() => onEdit(row.original)}
>
Editar
</Button>
)}
{onDelete && (
<Button
variant="destructive"
size="sm"
onClick={() => onDelete(row.original)}
>
Excluir
</Button>
)}
</div>
),
} as ColumnDef<TData, any>,
]
{
id: 'actions',
header: 'Ações',
cell: ({ row }: any) => (
<div className="flex gap-2">
{onEdit && (
<Button
variant="ghost"
size="sm"
onClick={() => onEdit(row.original)}
>
Editar
</Button>
)}
{onDelete && (
<Button
variant="destructive"
size="sm"
onClick={() => onDelete(row.original)}
>
Excluir
</Button>
)}
</div>
),
} as ColumnDef<TData, any>,
]
: []),
],
state: {

View file

@ -0,0 +1,12 @@
import { ColumnDef } from "@tanstack/react-table";
// Tipagem genérica
export default interface DataTableInterface<TData> {
data?: TData[] | null;
columns: ColumnDef<TData, any>[];
filterColumn?: string;
filterPlaceholder?: string;
onEdit?: (item: TData) => void;
onDelete?: (item: TData) => void;
onRowClick?: (item: TData) => void;
}

View file

@ -4,7 +4,7 @@ import { forwardRef } from 'react';
import { Button } from '@/components/ui/button';
import { Loader2 } from 'lucide-react';
import clsx from 'clsx';
import LoadingButtonProps from './LoadingButtonProps';
import LoadingButtonProps from './LoadingButtonInterface';
const LoadingButton = forwardRef<HTMLButtonElement, LoadingButtonProps>(
({ text, textLoading, loading = false, className, disabled, ...props }, ref) => {

View file

@ -1,6 +1,6 @@
import { Button } from '@/components/ui/button';
export default interface LoadingButtonProps extends React.ComponentProps<typeof Button> {
export default interface LoadingButtonInterface extends React.ComponentProps<typeof Button> {
text: string;
textLoading: string;
loading?: boolean;