diff --git a/src/app/production/transfer-to-laying/page.tsx b/src/app/production/transfer-to-laying/page.tsx index 5d790345..be8ff454 100644 --- a/src/app/production/transfer-to-laying/page.tsx +++ b/src/app/production/transfer-to-laying/page.tsx @@ -1,15 +1,25 @@ import TransferToLayingsTable from '@/components/pages/production/transfer-to-laying/TransferToLayingsTable'; import TransferToLayingFormModal from '@/components/pages/production/transfer-to-laying/TransferToLayingFormModal'; import TransferToLayingDetailModal from '@/components/pages/production/transfer-to-laying/TransferToLayingDetailModal'; +import RequirePermission from '@/components/helper/RequirePermission'; const TransferToLaying = () => { return (
- + + + - + + +
); }; diff --git a/src/components/Drawer.tsx b/src/components/Drawer.tsx index bbc36782..fc0af9fb 100644 --- a/src/components/Drawer.tsx +++ b/src/components/Drawer.tsx @@ -16,7 +16,6 @@ interface DrawerProps { onBackdropClick?: () => void; closeOnBackdropClick?: boolean; expandedContent?: ReactNode; - expandedWidth?: string; } type DrawerClassName = { @@ -25,6 +24,7 @@ type DrawerClassName = { drawerSide?: string; drawerOverlay?: string; drawerSidebarContent?: string; + drawerExpandedContent?: string; }; const Drawer = ({ @@ -39,7 +39,6 @@ const Drawer = ({ onBackdropClick, closeOnBackdropClick = true, expandedContent, - expandedWidth = 'w-[400px]', }: DrawerProps) => { const getDrawerClassNames = (): DrawerClassName => { const baseClassNames = { @@ -56,6 +55,9 @@ const Drawer = ({ ? 'w-full lg:min-w-[600px] lg:max-w-[600px]' : 'w-full max-w-[300px] lg:w-[300px]'; } + if (className?.drawerSidebarContent) { + return ''; + } return 'w-full sm:min-w-120 sm:w-fit'; }; @@ -174,7 +176,7 @@ const Drawer = ({
diff --git a/src/components/pages/production/uniformity/UniformityPageWrapper.tsx b/src/components/pages/production/uniformity/UniformityPageWrapper.tsx index 07f313b6..5c8f1313 100644 --- a/src/components/pages/production/uniformity/UniformityPageWrapper.tsx +++ b/src/components/pages/production/uniformity/UniformityPageWrapper.tsx @@ -58,7 +58,10 @@ export default function UniformityPageWrapper({ zIndex='99999' sidebarContent={isOpen ?
{children}
: null} expandedContent={expandedDrawerOpen ? expandedDrawerContent : null} - expandedWidth='w-[500px]' + className={{ + drawerSidebarContent: 'w-[446px]', + drawerExpandedContent: 'w-[446px]', + }} /> ); diff --git a/src/components/pages/production/uniformity/UniformityTable.tsx b/src/components/pages/production/uniformity/UniformityTable.tsx index e9405dd6..a3530032 100644 --- a/src/components/pages/production/uniformity/UniformityTable.tsx +++ b/src/components/pages/production/uniformity/UniformityTable.tsx @@ -42,8 +42,6 @@ import { ProjectFlock, } from '@/types/api/production/project-flock'; import { - getStatusColor, - getStatusIndicatorColor, getStatusText, getStatusBadgeColor, } from '@/components/pages/production/uniformity/uniformity-utils'; @@ -112,11 +110,19 @@ const UniformityConfirmationPreview = ({ const columns: ColumnDef[] = [ { - header: 'Label', + accessorKey: 'label', + enableSorting: false, + header: () => ( + Label + ), cell: (props) => props.row.original.label, }, { - header: 'Value', + accessorKey: 'value', + enableSorting: false, + header: () => ( + Value + ), cell: (props) => { const id = props.row.original.id; const value = props.row.original.value; @@ -124,16 +130,10 @@ const UniformityConfirmationPreview = ({ if (id === 'status') { return (
- - {getStatusText(value)} - +
); } @@ -214,7 +214,6 @@ const UniformityTable = () => { const [isBulkActionLoading, setIsBulkActionLoading] = useState(false); const [isPdfExportLoading, setIsPdfExportLoading] = useState(false); const [isExcelExportLoading, setIsExcelExportLoading] = useState(false); - const isAnyExportLoading = isPdfExportLoading || isExcelExportLoading; const singleDeleteModal = useModal(); const successModal = useModal(); @@ -238,7 +237,7 @@ const UniformityTable = () => { const [filterEndDate, setFilterEndDate] = useState(''); const [filterProjectFlockLocationId, setFilterProjectFlockLocationId] = useState(''); - const [filterErrors, setFilterErrors] = useState>({}); + const [, setFilterErrors] = useState>({}); const { setInputValue: setFilterLocationInputValue, @@ -309,7 +308,6 @@ const UniformityTable = () => { ? projectFlockKandangLookupData.data : undefined; - // Update filterProjectFlockKandangId when lookup changes useEffect(() => { if (projectFlockKandangLookup?.id) { setFilterProjectFlockKandangId(projectFlockKandangLookup.id); @@ -483,12 +481,6 @@ const UniformityTable = () => { [filterFormik] ); - const handleApplyFilters = useCallback(() => { - handleFormSubmit( - new Event('submit') as unknown as React.FormEvent - ); - }, [handleFormSubmit]); - const selectedRowIds = useMemo(() => { return Object.keys(rowSelection) .filter((key) => rowSelection[key]) @@ -1076,7 +1068,7 @@ const UniformityTable = () => { modalBox: 'rounded-2xl', }} > -
+
{createdUniformity ? ( { modalBox: 'rounded-2xl', }} > -
+
@@ -1136,7 +1128,7 @@ const UniformityTable = () => { modalBox: 'rounded-2xl', }} > -
+
{selectedRowIds.length === 1 ? ( { modalBox: 'rounded-2xl', }} > -
+
@@ -1192,7 +1184,7 @@ const UniformityTable = () => { modalBox: 'rounded-2xl', }} > -
+
{selectedRowIds.length === 1 ? ( { modalBox: 'rounded-2xl', }} > -
+
{selectedRowIds.length === 1 ? ( = ({ data }) => { const margin = { top: 20, right: 30, - left: 20, + left: 0, bottom: 5, }; @@ -172,7 +172,7 @@ const UniformityBarChart: React.FC = ({ data }) => { diff --git a/src/components/pages/production/uniformity/chart/UniformityGaugeChart.tsx b/src/components/pages/production/uniformity/chart/UniformityGaugeChart.tsx index 54f8e4ec..8249e1d5 100644 --- a/src/components/pages/production/uniformity/chart/UniformityGaugeChart.tsx +++ b/src/components/pages/production/uniformity/chart/UniformityGaugeChart.tsx @@ -65,12 +65,12 @@ const UniformityGaugeChart: React.FC = ({ -
- +
+ {value}% -
- +
+ {label}
@@ -81,7 +81,7 @@ const UniformityGaugeChart: React.FC = ({ @@ -611,8 +611,8 @@ const UniformityForm = ({ > @@ -622,7 +622,7 @@ const UniformityForm = ({
-
+
diff --git a/src/components/pages/production/uniformity/form/UniformityResultForm.tsx b/src/components/pages/production/uniformity/form/UniformityResultForm.tsx index 98db02fc..eaf51103 100644 --- a/src/components/pages/production/uniformity/form/UniformityResultForm.tsx +++ b/src/components/pages/production/uniformity/form/UniformityResultForm.tsx @@ -120,13 +120,19 @@ const UniformityResultForm = () => { () => [ { accessorKey: 'label', - header: 'Label', + header: () => ( + Label + ), cell: (props) => props.row.original.label, + enableSorting: false, }, { accessorKey: 'value', - header: 'Value', + header: () => ( + Value + ), cell: (props) => {props.row.original.value}, + enableSorting: false, }, ], [] @@ -160,13 +166,19 @@ const UniformityResultForm = () => { () => [ { accessorKey: 'label', - header: 'Label', + header: () => ( + Label + ), cell: (props) => props.row.original.label, + enableSorting: false, }, { accessorKey: 'value', - header: 'Value', + header: () => ( + Value + ), cell: (props) => {props.row.original.value}, + enableSorting: false, }, ], [] @@ -227,7 +239,7 @@ const UniformityResultForm = () => { > @@ -235,9 +247,9 @@ const UniformityResultForm = () => { {/* Form Section */}
{verifyUniformityResult ? ( -
+
-

+

Sampling and Range

@@ -252,7 +264,7 @@ const UniformityResultForm = () => {
-

+

Result

@@ -265,7 +277,7 @@ const UniformityResultForm = () => { }} />
-
+
data={tableData} columns={columnsUniformity} @@ -280,7 +292,7 @@ const UniformityResultForm = () => { onClick={handleSubmit} isLoading={isSubmitting} disabled={!uniformityFormData} - className='mb-10' + className='mb-5 px-3 py-2.5 text-sm text-base-100 rounded-lg shadow-sm' > Submit diff --git a/src/components/pages/production/uniformity/uniformity-utils.ts b/src/components/pages/production/uniformity/uniformity-utils.ts index 1b513de4..f25f9293 100644 --- a/src/components/pages/production/uniformity/uniformity-utils.ts +++ b/src/components/pages/production/uniformity/uniformity-utils.ts @@ -1,26 +1,8 @@ -export const weightStatusColorMap: Record = { - ideal: 'bg-[#00D39033]', - outside: 'bg-error/10', -}; - -export const weightStatusIndicatorColorMap: Record = { - ideal: 'bg-[#008000]', - outside: 'bg-error', -}; - export const weightStatusTextMap: Record = { ideal: 'Ideal', outside: 'Outside', }; -export const getWeightStatusColor = (status: string): string => { - return weightStatusColorMap[status] || 'bg-info'; -}; - -export const getWeightStatusIndicatorColor = (status: string): string => { - return weightStatusIndicatorColorMap[status] || 'bg-info'; -}; - export const getWeightStatusText = (status: string): string => { return weightStatusTextMap[status] || status; }; @@ -39,24 +21,6 @@ export const getWeightStatusBadgeColor = ( return weightStatusBadgeColorMap[status] || 'neutral'; }; -export const statusColorMap: Record = { - APPROVED: 'bg-[#00D39033]', - Disetujui: 'bg-[#00D39033]', - REJECTED: 'bg-error/10', - Ditolak: 'bg-error/10', - CREATED: 'bg-[#f3f3f4]', - Pengajuan: 'bg-[#f3f3f4]', -}; - -export const statusIndicatorColorMap: Record = { - APPROVED: 'bg-[#008000]', - Disetujui: 'bg-[#008000]', - REJECTED: 'bg-error', - Ditolak: 'bg-error', - CREATED: 'bg-[#D9D9D9]', - Pengajuan: 'bg-[#D9D9D9]', -}; - export const statusTextMap: Record = { APPROVED: 'Disetujui', Disetujui: 'Disetujui', @@ -66,14 +30,6 @@ export const statusTextMap: Record = { Pengajuan: 'Pengajuan', }; -export const getStatusColor = (status: string): string => { - return statusColorMap[status] || 'bg-info'; -}; - -export const getStatusIndicatorColor = (status: string): string => { - return statusIndicatorColorMap[status] || 'bg-info'; -}; - export const getStatusText = (status: string): string => { return statusTextMap[status] || status; }; diff --git a/src/config/constant.ts b/src/config/constant.ts index 120b6b6a..9c6946f7 100644 --- a/src/config/constant.ts +++ b/src/config/constant.ts @@ -82,6 +82,8 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ permission: [ 'lti.production.project_flocks.list', 'lti.production.recording.list', + 'lti.production.transfer_to_laying.list', + 'lti.production.uniformity.list', ], submenu: [ { @@ -97,6 +99,7 @@ export const MAIN_DRAWER_LINKS: SidebarMenuItem[] = [ { text: 'Transfer ke Laying', link: '/production/transfer-to-laying', + permission: ['lti.production.transfer_to_laying.list'], }, { text: 'Uniformity',