From 5f68c05acc8a64e17cdd9e63f188676a0ebf23be Mon Sep 17 00:00:00 2001 From: rstubryan Date: Sat, 27 Dec 2025 18:05:25 +0700 Subject: [PATCH] refactor(FE-316,438): Wrap Uniformity actions with permission checks --- .../pages/uniformity/UniformityTable.tsx | 79 +++++++++++-------- .../pages/uniformity/form/UniformityForm.tsx | 28 ++++--- .../uniformity/form/UniformityPreviewForm.tsx | 17 ++-- src/config/constant.ts | 1 + src/config/route-permission.ts | 6 ++ 5 files changed, 79 insertions(+), 52 deletions(-) diff --git a/src/components/pages/uniformity/UniformityTable.tsx b/src/components/pages/uniformity/UniformityTable.tsx index d616a4a4..0f5de463 100644 --- a/src/components/pages/uniformity/UniformityTable.tsx +++ b/src/components/pages/uniformity/UniformityTable.tsx @@ -23,6 +23,7 @@ import ConfirmationModal from '@/components/modal/ConfirmationModal'; import toast from 'react-hot-toast'; import Card from '@/components/Card'; import UniformityTableSkeleton from './skeleton/UniformityTableSkeleton'; +import RequirePermission from '@/components/helper/RequirePermission'; const statusColorMap: Record = { APPROVED: 'bg-[#00D39033]', @@ -78,38 +79,44 @@ const RowOptionsMenu = ({ return ( - - - + > + + Detail + + + + + + + + ); }; @@ -348,10 +355,12 @@ const UniformityTable = ({ refresh }: { refresh?: () => void }) => { <>
- + + +
diff --git a/src/components/pages/uniformity/form/UniformityForm.tsx b/src/components/pages/uniformity/form/UniformityForm.tsx index a4ab72bc..b1387b70 100644 --- a/src/components/pages/uniformity/form/UniformityForm.tsx +++ b/src/components/pages/uniformity/form/UniformityForm.tsx @@ -15,6 +15,8 @@ import SelectInput, { useSelect, } from '@/components/input/SelectInput'; +import RequirePermission from '@/components/helper/RequirePermission'; + import { UniformityFormSchema, UniformityFormValues, @@ -578,18 +580,20 @@ const UniformityForm = ({
{!isNextStep && ( - + + + )}
diff --git a/src/components/pages/uniformity/form/UniformityPreviewForm.tsx b/src/components/pages/uniformity/form/UniformityPreviewForm.tsx index aeb90bef..7cbd86b9 100644 --- a/src/components/pages/uniformity/form/UniformityPreviewForm.tsx +++ b/src/components/pages/uniformity/form/UniformityPreviewForm.tsx @@ -5,6 +5,7 @@ import Button from '@/components/Button'; import Tooltip from '@/components/Tooltip'; import DrawerHeader from '@/components/helper/drawer/DrawerHeader'; import { useUiStore } from '@/stores/ui/ui.store'; +import RequirePermission from '@/components/helper/RequirePermission'; const UniformityPreviewForm = () => { const setExpandedDrawerOpen = useUiStore((s) => s.setExpandedDrawerOpen); @@ -27,11 +28,17 @@ const UniformityPreviewForm = () => { subtitleClassName='text-sm text-neutral' showDivider > - + + + {/* Form Section */} diff --git a/src/config/constant.ts b/src/config/constant.ts index fb293c52..07866102 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -46,6 +46,7 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ text: 'Uniformity', link: '/uniformity', icon: 'heroicons-outline:scale', + permission: ['lti.production.uniformity.list'], }, { text: 'Biaya', diff --git a/src/config/route-permission.ts b/src/config/route-permission.ts index ed6d4771..5618c134 100644 --- a/src/config/route-permission.ts +++ b/src/config/route-permission.ts @@ -152,4 +152,10 @@ export const ROUTE_PERMISSIONS: Record = { '/master-data/flock/add/': ['lti.master.flocks.create'], '/master-data/flock/detail/': ['lti.master.flocks.detail'], '/master-data/flock/detail/edit/': ['lti.master.flocks.update'], + + // Uniformity + '/uniformity/': ['lti.production.uniformity.list'], + '/uniformity/add/': ['lti.production.uniformity.create'], + '/uniformity/detail/': ['lti.production.uniformity.detail'], + '/uniformity/detail/edit/': ['lti.production.uniformity.update'], };