diff --git a/src/components/pages/production/project-flock/ProjectFlockTable.tsx b/src/components/pages/production/project-flock/ProjectFlockTable.tsx
index 3b134133..14378852 100644
--- a/src/components/pages/production/project-flock/ProjectFlockTable.tsx
+++ b/src/components/pages/production/project-flock/ProjectFlockTable.tsx
@@ -32,6 +32,7 @@ import StatusBadge from '@/components/helper/StatusBadge';
import PopoverButton from '@/components/popover/PopoverButton';
import PopoverContent from '@/components/popover/PopoverContent';
import ProjectFlockConfirmationModal from './ProjectFlockConfirmationModal';
+import ProjectFlockTableSkeleton from '@/components/pages/production/project-flock/skeleton/ProjectFlockTableSkeleton';
import { useProjectFlockStore } from '@/stores/production/project-flock/project-flock.store';
import { ProjectFlockFormValues } from './form/ProjectFlockForm.schema';
import { useChickinStore } from '@/stores/production/chickin/chickin.store';
@@ -997,46 +998,69 @@ const ProjectFlockTable = ({ refresh }: { refresh?: () => void }) => {
-
- data={isResponseSuccess(projectFlocks) ? projectFlocks?.data : []}
- columns={columns}
- pageSize={tableFilterState.pageSize}
- page={
- isResponseSuccess(projectFlocks) ? projectFlocks?.meta?.page : 0
- }
- totalItems={
- isResponseSuccess(projectFlocks)
- ? projectFlocks?.meta?.total_results
- : 0
- }
- onPageChange={(page) => {
- setPage(page);
- }}
- onPageSizeChange={(pageSize) => {
- setPageSize(pageSize);
- }}
- isLoading={isLoading}
- sorting={sorting}
- setSorting={setSorting}
- rowSelection={rowSelection}
- setRowSelection={setRowSelection}
- enableRowSelection={(row) => {
- const projectFlock = row.original;
- return (
- projectFlock.approval?.step_number === 1 &&
- projectFlock.approval?.action !== 'REJECTED'
- );
- }}
- withCheckbox
- className={{
- containerClassName: cn('p-3', {
- 'w-full mb-20':
- isResponseSuccess(projectFlocks) &&
- projectFlocks?.data?.length === 0,
- }),
- headerColumnClassName: 'text-nowrap',
- }}
- />
+
+ {isLoading ? (
+
+
+
+ ) : !isResponseSuccess(projectFlocks) ||
+ projectFlocks.data?.length === 0 ? (
+
+ ) : (
+
+ data={
+ isResponseSuccess(projectFlocks) ? projectFlocks?.data : []
+ }
+ columns={columns}
+ pageSize={tableFilterState.pageSize}
+ page={
+ isResponseSuccess(projectFlocks)
+ ? projectFlocks?.meta?.page
+ : 0
+ }
+ totalItems={
+ isResponseSuccess(projectFlocks)
+ ? projectFlocks?.meta?.total_results
+ : 0
+ }
+ onPageChange={(page) => {
+ setPage(page);
+ }}
+ onPageSizeChange={(pageSize) => {
+ setPageSize(pageSize);
+ }}
+ isLoading={isLoading}
+ sorting={sorting}
+ setSorting={setSorting}
+ rowSelection={rowSelection}
+ setRowSelection={setRowSelection}
+ enableRowSelection={(row) => {
+ const projectFlock = row.original;
+ return (
+ projectFlock.approval?.step_number === 1 &&
+ projectFlock.approval?.action !== 'REJECTED'
+ );
+ }}
+ withCheckbox
+ className={{
+ containerClassName: cn('p-3 mb-0'),
+ headerColumnClassName: 'text-nowrap',
+ }}
+ />
+ )}
+
diff --git a/src/components/pages/production/project-flock/skeleton/ProjectFlockTableSkeleton.tsx b/src/components/pages/production/project-flock/skeleton/ProjectFlockTableSkeleton.tsx
new file mode 100644
index 00000000..9fe74cb8
--- /dev/null
+++ b/src/components/pages/production/project-flock/skeleton/ProjectFlockTableSkeleton.tsx
@@ -0,0 +1,37 @@
+import DataStateSkeleton from '@/components/helper/skeleton/DataStateSkeleton';
+import Table from '@/components/Table';
+import { ProjectFlock } from '@/types/api/production/project-flock';
+import { ColumnDef } from '@tanstack/react-table';
+
+const ProjectFlockTableSkeleton = ({
+ columns,
+ icon,
+ title = 'No Data Available',
+ subtitle = 'There is no project flock data displayed. Enter project flock data to get started.',
+}: {
+ columns: ColumnDef[];
+ icon: React.ReactNode;
+ title?: string;
+ subtitle?: string;
+}) => {
+ return (
+
+ );
+};
+
+export default ProjectFlockTableSkeleton;
diff --git a/src/components/pages/production/transfer-to-laying/TransferToLayingsTable.tsx b/src/components/pages/production/transfer-to-laying/TransferToLayingsTable.tsx
index 06852fe1..0b8a299f 100644
--- a/src/components/pages/production/transfer-to-laying/TransferToLayingsTable.tsx
+++ b/src/components/pages/production/transfer-to-laying/TransferToLayingsTable.tsx
@@ -22,6 +22,7 @@ import Dropdown from '@/components/Dropdown';
import StatusBadge from '@/components/helper/StatusBadge';
import TransferToLayingFilterModal from '@/components/pages/production/transfer-to-laying/TransferToLayingFilterModal';
import TransferToLayingConfirmationModal from '@/components/pages/production/transfer-to-laying/TransferToLayingConfirmationModal';
+import TransferToLayingTableSkeleton from '@/components/pages/production/transfer-to-laying/skeleton/TransferToLayingTableSkeleton';
import {
TransferToLaying,
@@ -596,40 +597,61 @@ const TransferToLayingsTable = () => {
-
- data={
- isResponseSuccess(transferToLayings) ? transferToLayings?.data : []
- }
- columns={transferToLayingsColumns}
- pageSize={tableFilterState.pageSize}
- page={
- isResponseSuccess(transferToLayings)
- ? transferToLayings?.meta?.page
- : 0
- }
- totalItems={
- isResponseSuccess(transferToLayings)
- ? transferToLayings?.meta?.total_results
- : 0
- }
- onPageChange={setPage}
- onPageSizeChange={setPageSize}
- isLoading={isLoading}
- sorting={sorting}
- setSorting={setSorting}
- rowSelection={rowSelection}
- setRowSelection={setRowSelection}
- enableRowSelection={tableEnableRowSelectionHandler}
- withCheckbox
- className={{
- containerClassName: cn('p-3', {
- 'w-full mb-20':
- isResponseSuccess(transferToLayings) &&
- transferToLayings?.data?.length === 0,
- }),
- headerColumnClassName: 'text-nowrap',
- }}
- />
+
+ {isLoading ? (
+
+
+
+ ) : !isResponseSuccess(transferToLayings) ||
+ transferToLayings.data?.length === 0 ? (
+
+
+ }
+ />
+
+ ) : (
+
+ data={
+ isResponseSuccess(transferToLayings)
+ ? transferToLayings?.data
+ : []
+ }
+ columns={transferToLayingsColumns}
+ pageSize={tableFilterState.pageSize}
+ page={
+ isResponseSuccess(transferToLayings)
+ ? transferToLayings?.meta?.page
+ : 0
+ }
+ totalItems={
+ isResponseSuccess(transferToLayings)
+ ? transferToLayings?.meta?.total_results
+ : 0
+ }
+ onPageChange={setPage}
+ onPageSizeChange={setPageSize}
+ isLoading={isLoading}
+ sorting={sorting}
+ setSorting={setSorting}
+ rowSelection={rowSelection}
+ setRowSelection={setRowSelection}
+ enableRowSelection={tableEnableRowSelectionHandler}
+ withCheckbox
+ className={{
+ containerClassName: cn('p-3 mb-0'),
+ headerColumnClassName: 'text-nowrap',
+ }}
+ />
+ )}
+
[];
+ icon: React.ReactNode;
+ title?: string;
+ subtitle?: string;
+}) => {
+ return (
+
+ );
+};
+
+export default TransferToLayingTableSkeleton;