refactor(Component): Ajuste em componentes diversos
This commit is contained in:
parent
f2b2181136
commit
4b0c7e651d
18 changed files with 57 additions and 55 deletions
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
Loading…
Add table
Reference in a new issue