feat: add fields translations to common.json and enhance EnterpriseDataTable with status column and StatusBadge component
This commit is contained in:
@@ -113,6 +113,41 @@
|
||||
"system_menu": {
|
||||
"history": "History",
|
||||
"bookmark": "Bookmark"
|
||||
},
|
||||
"fields": {
|
||||
"id": "ID",
|
||||
"code": "Code",
|
||||
"name": "Name",
|
||||
"description": "Description",
|
||||
"number": "Number",
|
||||
"status": "Status",
|
||||
"type": "Type",
|
||||
"category": "Category",
|
||||
"action": "Action",
|
||||
"createdAt": "Created At",
|
||||
"updatedAt": "Updated At",
|
||||
"createdBy": "Created By",
|
||||
"updatedBy": "Updated By",
|
||||
"deletedAt": "Deleted At",
|
||||
"date": "Date",
|
||||
"amount": "Amount",
|
||||
"price": "Price",
|
||||
"quantity": "Quantity",
|
||||
"total": "Total",
|
||||
"balance": "Balance",
|
||||
"address": "Address",
|
||||
"phone": "Phone Number",
|
||||
"email": "Email",
|
||||
"user": "User",
|
||||
"role": "Role",
|
||||
"notes": "Notes",
|
||||
"isActive": "Active",
|
||||
"isDefault": "Default",
|
||||
"isRequired": "Required",
|
||||
"startDate": "Start Date",
|
||||
"endDate": "End Date",
|
||||
"attachment": "Attachment",
|
||||
"reference": "Reference"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -113,6 +113,41 @@
|
||||
"system_menu": {
|
||||
"history": "Riwayat",
|
||||
"bookmark": "Bookmark"
|
||||
},
|
||||
"fields": {
|
||||
"id": "ID",
|
||||
"code": "Kode",
|
||||
"name": "Nama",
|
||||
"description": "Deskripsi",
|
||||
"number": "Nomor",
|
||||
"status": "Status",
|
||||
"type": "Tipe",
|
||||
"category": "Kategori",
|
||||
"action": "Aksi",
|
||||
"createdAt": "Tanggal Dibuat",
|
||||
"updatedAt": "Tanggal Diperbarui",
|
||||
"createdBy": "Dibuat Oleh",
|
||||
"updatedBy": "Diperbarui Oleh",
|
||||
"deletedAt": "Tanggal Dihapus",
|
||||
"date": "Tanggal",
|
||||
"amount": "Nominal",
|
||||
"price": "Harga",
|
||||
"quantity": "Kuantitas",
|
||||
"total": "Total",
|
||||
"balance": "Saldo",
|
||||
"address": "Alamat",
|
||||
"phone": "No. Telepon",
|
||||
"email": "Email",
|
||||
"user": "Pengguna",
|
||||
"role": "Peran",
|
||||
"notes": "Catatan",
|
||||
"isActive": "Aktif",
|
||||
"isDefault": "Bawaan",
|
||||
"isRequired": "Wajib",
|
||||
"startDate": "Tanggal Mulai",
|
||||
"endDate": "Tanggal Selesai",
|
||||
"attachment": "Lampiran",
|
||||
"reference": "Referensi"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ import {
|
||||
} from 'ag-grid-community';
|
||||
import { Box } from '@mantine/core';
|
||||
|
||||
import { DataGrid } from '../../../../components';
|
||||
import { DataGrid, StatusBadge } from '../../../../components';
|
||||
|
||||
import {
|
||||
useEnterpriseModuleDataServiceContext,
|
||||
@@ -108,8 +108,20 @@ export function EnterpriseDataTable<E extends BaseEntity>(props: EnterpriseDataT
|
||||
|
||||
// Ensure column definitions are referentially stable
|
||||
const finalColumnDefs = useMemo<ColDef<E>[]>(() => {
|
||||
return columnDefs;
|
||||
}, [columnDefs]);
|
||||
const masterDetailColumn: ColDef<E> = { maxWidth: 50, sortable: false, cellRenderer: 'agGroupCellRenderer' };
|
||||
const statusColumn: ColDef<E> = {
|
||||
maxWidth: 130,
|
||||
field: 'status' as any,
|
||||
headerName: t('common:fields.status'),
|
||||
cellRenderer: ({ value }: any) => <StatusBadge status={value} />,
|
||||
};
|
||||
|
||||
const prefixColumn: ColDef<E>[] = [props.masterDetail ? masterDetailColumn : (null as any), statusColumn].filter(
|
||||
Boolean,
|
||||
);
|
||||
|
||||
return [...prefixColumn, ...columnDefs];
|
||||
}, [columnDefs, props.masterDetail]);
|
||||
|
||||
// Default configuration applied to all columns in the grid
|
||||
const defaultColDef = useMemo<ColDef>(() => ({ flex: 1, minWidth: 100, sortable: true, resizable: true }), []);
|
||||
|
||||
Reference in New Issue
Block a user