refactor: modularize road management modules
This commit is contained in:
51
src/app/(modules)/segment/components/SegmentTable.tsx
Normal file
51
src/app/(modules)/segment/components/SegmentTable.tsx
Normal file
@@ -0,0 +1,51 @@
|
||||
'use client';
|
||||
|
||||
import type { ColumnDef } from '@tanstack/react-table';
|
||||
|
||||
import { DataTable } from '@/components/data-table';
|
||||
import type { Chainage } from '@/types';
|
||||
|
||||
interface SegmentTableProps {
|
||||
columns: ColumnDef<Chainage>[];
|
||||
segments: Chainage[];
|
||||
isLoading: boolean;
|
||||
skip: number;
|
||||
limit: number;
|
||||
total: number;
|
||||
onPageChange: (skip: number) => void;
|
||||
onLimitChange: (limit: number) => void;
|
||||
onEdit: (segment: Chainage) => void;
|
||||
onDelete: (segment: Chainage) => void;
|
||||
}
|
||||
|
||||
export function SegmentTable({
|
||||
columns,
|
||||
segments,
|
||||
isLoading,
|
||||
skip,
|
||||
limit,
|
||||
total,
|
||||
onPageChange,
|
||||
onLimitChange,
|
||||
onEdit,
|
||||
onDelete,
|
||||
}: SegmentTableProps) {
|
||||
return (
|
||||
<DataTable
|
||||
title="Segments"
|
||||
data={segments}
|
||||
columns={columns}
|
||||
onEdit={onEdit}
|
||||
onDelete={onDelete}
|
||||
isLoading={isLoading}
|
||||
emptyTitle="No segments found."
|
||||
pagination={{
|
||||
skip,
|
||||
limit,
|
||||
totalItems: total,
|
||||
onPageChange,
|
||||
onLimitChange,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user