From a1ea47c0f5345858772c1f6c02c4dc08d747dc95 Mon Sep 17 00:00:00 2001 From: azeeee05 Date: Tue, 18 Aug 2026 18:20:12 +0530 Subject: [PATCH] feat: implement master data management components including sidebar navigation and item table view --- .../components/ConfigurationFieldsColumn.tsx | 8 +++--- src/app/configuration/actionBuilder/index.tsx | 25 ++++++++++++++--- .../masterData/components/CategorySidebar.tsx | 8 +++--- .../masterData/components/MasterItemTable.tsx | 27 ++++++++++++++++--- 4 files changed, 56 insertions(+), 12 deletions(-) diff --git a/src/app/configuration/actionBuilder/components/ConfigurationFieldsColumn.tsx b/src/app/configuration/actionBuilder/components/ConfigurationFieldsColumn.tsx index de8a510..2c8ec28 100644 --- a/src/app/configuration/actionBuilder/components/ConfigurationFieldsColumn.tsx +++ b/src/app/configuration/actionBuilder/components/ConfigurationFieldsColumn.tsx @@ -7,7 +7,7 @@ import { TrashIcon, DotsSixVerticalIcon, } from '@phosphor-icons/react'; -import { CustomInput, CustomLoader, CustomButton } from '../../../../components/custom'; +import { CustomInput, CustomLoader, CustomButton, Skeleton } from '../../../../components/custom'; import type { FieldDefinition } from '../ActionBuilderTypes'; interface ConfigurationFieldsColumnProps { @@ -73,8 +73,10 @@ export function ConfigurationFieldsColumn({ {/* Field Cards List */}
{loading ? ( -
- +
+ + +
) : !selectedActionTypeId ? (
diff --git a/src/app/configuration/actionBuilder/index.tsx b/src/app/configuration/actionBuilder/index.tsx index b9ef2b8..c7d8a6c 100644 --- a/src/app/configuration/actionBuilder/index.tsx +++ b/src/app/configuration/actionBuilder/index.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from 'react'; import { CheckCircleIcon } from '@phosphor-icons/react'; -import { CustomConfirmationModal, CustomLoader } from '../../../components/custom'; +import { CustomConfirmationModal, CustomLoader, Skeleton } from '../../../components/custom'; import { CategoriesColumn, @@ -507,8 +507,27 @@ export default function ActionBuilderPage() { {/* 3-Column Drilldown Layout */} {loadingCategories && categories.length === 0 ? ( -
- +
+
+ + + + + +
+
+ + + + + +
+
+ + + + +
) : (
diff --git a/src/app/configuration/masterData/components/CategorySidebar.tsx b/src/app/configuration/masterData/components/CategorySidebar.tsx index 7bfa628..c6cd528 100644 --- a/src/app/configuration/masterData/components/CategorySidebar.tsx +++ b/src/app/configuration/masterData/components/CategorySidebar.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { ListBulletsIcon, MagnifyingGlassIcon, DatabaseIcon } from '@phosphor-icons/react'; -import { CustomInput, CustomLoader } from '../../../../components/custom'; +import { CustomInput, Skeleton } from '../../../../components/custom'; import type { MasterDataCategoryItem } from '../MasterDataTypes'; interface CategorySidebarProps { @@ -43,8 +43,10 @@ export const CategorySidebar: React.FC = ({ {/* Categories Selector List */} {loading ? ( -
- +
+ {Array.from({ length: 12 }).map((_, i) => ( + + ))}
) : filteredCategories.length === 0 ? (
diff --git a/src/app/configuration/masterData/components/MasterItemTable.tsx b/src/app/configuration/masterData/components/MasterItemTable.tsx index b2d572f..ac7ab20 100644 --- a/src/app/configuration/masterData/components/MasterItemTable.tsx +++ b/src/app/configuration/masterData/components/MasterItemTable.tsx @@ -10,7 +10,7 @@ import { import { CustomButton, CustomInput, - CustomLoader, + Skeleton, CustomStatus, } from '../../../../components/custom'; import type { MasterDataCategoryItem, MasterDataItem } from '../MasterDataTypes'; @@ -87,8 +87,29 @@ export const MasterItemTable: React.FC = ({ {/* Items Table */} {loading ? ( -
- +
+ + + + + + + + + + + + {Array.from({ length: 6 }).map((_, i) => ( + + + + + + + + ))} + +
SeqValue / LabelCodeStatusActions
) : !selectedCategory ? (