Merge pull request 'waseem' (#26) from waseem into development
Reviewed-on: https://gitea.maskantech.in/gitea_admin/aeroresolve_frontend/pulls/26
This commit is contained in:
@@ -201,9 +201,9 @@ export function ActionCategoryManager() {
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Banner / Controls */}
|
||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-white p-5 rounded-[16px] border border-gray-200 shadow-sm">
|
||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-white p-5 rounded-[20px] border border-gray-100 shadow-sm">
|
||||
<div>
|
||||
<h3 className="text-[17px] font-bold text-[#0F172B] flex items-center gap-2">
|
||||
<FolderPlusIcon size={22} className="text-[#1E7D5C]" />
|
||||
@@ -219,7 +219,7 @@ export function ActionCategoryManager() {
|
||||
variant="primary"
|
||||
onClick={handleOpenCreate}
|
||||
leftIcon={<PlusIcon size={18} />}
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[12px] font-semibold text-[14px]"
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[10px] !gap-[10px] !h-[40px] font-semibold text-[14px]"
|
||||
>
|
||||
Add New Category
|
||||
</CustomButton>
|
||||
@@ -337,17 +337,17 @@ export function ActionCategoryManager() {
|
||||
</CustomModal>
|
||||
|
||||
{/* Category List Table Card */}
|
||||
<div className="bg-white rounded-[20px] border border-gray-200 shadow-sm overflow-hidden flex flex-col">
|
||||
<div className="bg-white rounded-[20px] border border-gray-100 shadow-sm overflow-hidden flex flex-col">
|
||||
{/* Table Filter Bar */}
|
||||
<div className="p-4 border-b border-gray-100 flex flex-col sm:flex-row items-center justify-between gap-4 bg-slate-50/50">
|
||||
<div className="relative w-full sm:w-80">
|
||||
<MagnifyingGlassIcon size={18} className="absolute left-3.5 top-1/2 -translate-y-1/2 text-gray-400" />
|
||||
<input
|
||||
type="text"
|
||||
<div className="w-full sm:w-80">
|
||||
<CustomInput
|
||||
value={searchTerm}
|
||||
onChange={(e) => handleSearchChange(e.target.value)}
|
||||
placeholder="Search category by name or code..."
|
||||
className="w-full pl-10 pr-4 py-2 text-[13px] bg-white border border-gray-200 rounded-[10px] focus:outline-none focus:border-[#1E7D5C] focus:ring-1 focus:ring-[#1E7D5C] transition-colors"
|
||||
leftIcon={<MagnifyingGlassIcon size={16} />}
|
||||
className="!bg-[#F3F6F5] !rounded-[10px] !h-[38px] !border !border-[#E5E7EB]"
|
||||
containerClassName="!gap-0"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -225,9 +225,9 @@ export function ActionTypeManager() {
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Banner / Controls */}
|
||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-white p-5 rounded-[16px] border border-gray-200 shadow-sm">
|
||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 bg-white p-5 rounded-[20px] border border-gray-100 shadow-sm">
|
||||
<div>
|
||||
<h3 className="text-[17px] font-bold text-[#0F172B] flex items-center gap-2">
|
||||
<CirclesThreePlusIcon size={22} className="text-[#1E7D5C]" />
|
||||
@@ -243,7 +243,7 @@ export function ActionTypeManager() {
|
||||
variant="primary"
|
||||
onClick={handleOpenCreate}
|
||||
leftIcon={<PlusIcon size={18} />}
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[12px] font-semibold text-[14px]"
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[10px] !gap-[10px] !h-[40px] font-semibold text-[14px]"
|
||||
>
|
||||
Add Action Type
|
||||
</CustomButton>
|
||||
@@ -375,7 +375,7 @@ export function ActionTypeManager() {
|
||||
</CustomModal>
|
||||
|
||||
{/* Action Types Table Card */}
|
||||
<div className="bg-white rounded-[20px] border border-gray-200 shadow-sm overflow-hidden flex flex-col">
|
||||
<div className="bg-white rounded-[20px] border border-gray-100 shadow-sm overflow-hidden flex flex-col">
|
||||
{/* Table Filter Bar */}
|
||||
<div className="p-4 border-b border-gray-100 flex flex-col sm:flex-row items-center justify-between gap-4 bg-slate-50/50">
|
||||
<div className="flex items-center gap-3 w-full sm:w-auto">
|
||||
@@ -387,14 +387,14 @@ export function ActionTypeManager() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="relative flex-1 sm:w-72">
|
||||
<MagnifyingGlassIcon size={18} className="absolute left-3.5 top-1/2 -translate-y-1/2 text-gray-400" />
|
||||
<input
|
||||
type="text"
|
||||
<div className="flex-1 sm:w-72">
|
||||
<CustomInput
|
||||
value={searchTerm}
|
||||
onChange={(e) => handleSearchChange(e.target.value)}
|
||||
placeholder="Search action types..."
|
||||
className="w-full pl-10 pr-4 py-2 text-[13px] bg-white border border-gray-200 rounded-[10px] focus:outline-none focus:border-[#1E7D5C] focus:ring-1 focus:ring-[#1E7D5C] transition-colors"
|
||||
leftIcon={<MagnifyingGlassIcon size={16} />}
|
||||
className="!bg-[#F3F6F5] !rounded-[10px] !h-[38px] !border !border-[#E5E7EB]"
|
||||
containerClassName="!gap-0"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -382,9 +382,9 @@ export function DynamicFormRenderer() {
|
||||
const selectedTypeObj = actionTypes.find((t) => t.id === selectedActionTypeId);
|
||||
|
||||
return (
|
||||
<div className="space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Control Bar */}
|
||||
<div className="bg-white p-5 rounded-[16px] border border-gray-200 shadow-sm space-y-4">
|
||||
<div className="bg-white p-5 rounded-[20px] border border-gray-100 shadow-sm space-y-4">
|
||||
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
|
||||
<div>
|
||||
<h3 className="text-[17px] font-bold text-[#0F172B] flex items-center gap-2">
|
||||
@@ -424,7 +424,7 @@ export function DynamicFormRenderer() {
|
||||
</div>
|
||||
|
||||
{/* Main Dynamic Form Card */}
|
||||
<div className="bg-white rounded-[20px] border border-gray-200 shadow-sm overflow-hidden">
|
||||
<div className="bg-white rounded-[20px] border border-gray-100 shadow-sm overflow-hidden">
|
||||
<div className="p-5 border-b border-gray-100 bg-slate-50/70 flex items-center justify-between">
|
||||
<div className="flex items-center gap-2 text-[15px] font-bold text-slate-800">
|
||||
<LightningIcon size={20} className="text-[#1E7D5C]" weight="fill" />
|
||||
|
||||
@@ -323,9 +323,9 @@ export function FieldBuilderManager() {
|
||||
const selectedTypeObj = actionTypes.find((t) => t.id === selectedActionTypeId);
|
||||
|
||||
return (
|
||||
<div className="space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Banner / Selectors */}
|
||||
<div className="bg-white p-5 rounded-[16px] border border-gray-200 shadow-sm space-y-4">
|
||||
<div className="bg-white p-5 rounded-[20px] border border-gray-100 shadow-sm space-y-4">
|
||||
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
|
||||
<div>
|
||||
<h3 className="text-[17px] font-bold text-[#0F172B] flex items-center gap-2">
|
||||
@@ -343,7 +343,7 @@ export function FieldBuilderManager() {
|
||||
onClick={handleOpenCreate}
|
||||
disabled={!selectedActionTypeId}
|
||||
leftIcon={<PlusIcon size={18} />}
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[12px] font-semibold text-[14px]"
|
||||
className="!bg-[#1E7D5C] hover:!bg-[#17664B] !rounded-[10px] !gap-[10px] !h-[40px] font-semibold text-[14px]"
|
||||
>
|
||||
Add Field Definition
|
||||
</CustomButton>
|
||||
@@ -387,7 +387,7 @@ export function FieldBuilderManager() {
|
||||
)}
|
||||
|
||||
{/* Fields List Card */}
|
||||
<div className="bg-white rounded-[20px] border border-gray-200 shadow-sm overflow-hidden">
|
||||
<div className="bg-white rounded-[20px] border border-gray-100 shadow-sm overflow-hidden">
|
||||
<div className="p-4 border-b border-gray-100 bg-slate-50/50 flex items-center justify-between">
|
||||
<div className="flex items-center gap-2 text-[14px] font-bold text-slate-800">
|
||||
<span>Configured Fields for:</span>
|
||||
|
||||
@@ -46,9 +46,9 @@ export default function ActionBuilderPage() {
|
||||
];
|
||||
|
||||
return (
|
||||
<div className="p-6 md:p-8 max-w-7xl mx-auto space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Header */}
|
||||
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4 bg-white p-6 rounded-[24px] border border-gray-200 shadow-sm">
|
||||
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4 bg-white p-6 rounded-[20px] border border-gray-100 shadow-sm">
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="w-12 h-12 rounded-[16px] bg-[#E8F3EF] text-[#1E7D5C] flex items-center justify-center shrink-0 shadow-inner">
|
||||
<LightningIcon size={26} weight="fill" />
|
||||
@@ -76,7 +76,7 @@ export default function ActionBuilderPage() {
|
||||
</div>
|
||||
|
||||
{/* Main Tabs Navigation */}
|
||||
<div className="bg-white p-3 rounded-[18px] border border-gray-200 shadow-sm">
|
||||
<div>
|
||||
<CustomTabs
|
||||
tabs={tabs}
|
||||
value={activeTab}
|
||||
|
||||
@@ -195,7 +195,7 @@ export default function MasterDataManagement() {
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="p-6 md:p-8 max-w-7xl mx-auto space-y-6 font-sans">
|
||||
<div className="w-full space-y-6 font-sans">
|
||||
{/* Top Header Component */}
|
||||
<MasterDataHeader
|
||||
categoriesCount={categories.length}
|
||||
|
||||
@@ -4,6 +4,10 @@ import { useLocation } from 'react-router-dom';
|
||||
const PAGE_META: Record<string, { title: string; subtitle: string }> = {
|
||||
'/': { title: 'Dashboard', subtitle: 'Overview of system status and active incidents.' },
|
||||
'/cohorts': { title: 'Cohort Management', subtitle: 'Dynamic passenger segmentation for targeted recovery and recovery intelligence.' },
|
||||
'/policy-engine': { title: 'Policy Engine Framework Registry', subtitle: 'Manage framework policies, conditions, and automated actions.' },
|
||||
'/policy-engine/add': { title: 'Deploy New Policy', subtitle: 'Configure policy framework details, targeting rules, and action payloads.' },
|
||||
'/action-builder': { title: 'Action Builder', subtitle: 'Configure dynamic categories, action types, metadata fields, and dynamic user form workflows.' },
|
||||
'/config': { title: 'Master Data Configurations', subtitle: 'Manage system rule categories, lookup values, and master data parameters.' },
|
||||
'/recovery': { title: 'Recovery Incidents', subtitle: 'Operational workspace for managing passenger disruption cases.' },
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user