Merge branch 'fix/not-found-page-permission' into 'development'

[FIX/FE] Not Found Page

See merge request mbugroup/lti-web-client!301
This commit is contained in:
Rivaldi A N S
2026-02-03 05:06:11 +00:00
7 changed files with 33 additions and 30 deletions
+5
View File
@@ -0,0 +1,5 @@
import PageNotFound from '@/components/helper/NotFoundPage';
export default function NotFound() {
return <PageNotFound />;
}
@@ -50,5 +50,3 @@ const ProjectFlockDetailPage = () => {
};
export default ProjectFlockDetailPage;
ProjectFlockDetail;
ProjectFlockDetail;
+7 -1
View File
@@ -74,6 +74,8 @@ const MainDrawer = ({
const formattedPathname = pathname.endsWith('/') ? pathname : `${pathname}/`;
const isPathnameNotFoundPage = formattedPathname === '/404/';
const isPermitted = ROUTE_PERMISSIONS[formattedPathname]?.some((permission) =>
permissionCheck(permission)
);
@@ -82,10 +84,14 @@ const MainDrawer = ({
setMainDrawerOpen(!mainDrawerOpen);
};
if (!isPermitted) {
if (!isPermitted && !isPathnameNotFoundPage) {
return <PermissionNotFound />;
}
if (isPathnameNotFoundPage) {
return children;
}
return (
<Drawer
open={mainDrawerOpen}
+17
View File
@@ -0,0 +1,17 @@
import Button from '@/components/Button';
const PageNotFound = () => {
return (
<div className='w-full h-full flex-1 flex flex-col justify-center items-center gap-4'>
<h2 className='text-2xl font-bold text-error'>Halaman Tidak Ditemukan</h2>
<p className='text-gray-600 text-center'>
Halaman atau data yang anda cari tidak ditemukan.
</p>
<Button href='/dashboard' className='text-base-100'>
Kembali ke Dashboard
</Button>
</div>
);
};
export default PageNotFound;
@@ -190,8 +190,6 @@ const DailyMarketingsTable = ({
];
useEffect(() => {
// console.log({ sorting });
if (sorting.length === 1) {
onFilterByChange(sorting[0].id);
onSortByChange(sorting[0].desc ? 'desc' : 'asc');
@@ -658,16 +658,6 @@ export function DailyChecklistContent() {
) => {
const taskId = taskIdsByPhaseActivityId[activityId];
// console.log('[CHECKBOX] Click detected:', {
// activityId,
// employeeId,
// checked,
// taskId,
// hasTaskId: !!taskId,
// checklistStatus,
// isChecklistStatusDraft,
// });
if (!taskId) {
console.error('[CHECKBOX] No taskId found for activityId:', activityId);
console.error('[CHECKBOX] Available taskIds:', taskIdsByPhaseActivityId);
@@ -695,10 +685,7 @@ export function DailyChecklistContent() {
},
},
};
// console.log(
// '[CHECKBOX] State updated optimistically:',
// updated[taskId]?.[employeeId]
// );
return updated;
});
@@ -710,8 +697,6 @@ export function DailyChecklistContent() {
note: assignments[taskId]?.[employeeId]?.note || null,
};
// console.log('[CHECKBOX] Saving to database:', payload);
const checkOrUncheckAssignmentRes =
await DailyChecklistApi.checkOrUncheckAssignment(payload);
@@ -735,8 +720,6 @@ export function DailyChecklistContent() {
}));
return;
}
// console.log('[CHECKBOX] Saved successfully');
};
const handleNoteChange = async (
@@ -1247,8 +1230,6 @@ export function DailyChecklistContent() {
})
);
console.log(activities);
activities.forEach((activity, index) => {
const taskId =
taskIdsByPhaseActivityId[activity.id];
@@ -17,7 +17,7 @@ import {
DialogFooter,
} from '@/figma-make/components/base/dialog';
import { toast } from 'sonner';
import { useRouter, useSearchParams } from 'next/navigation';
import { notFound, useRouter, useSearchParams } from 'next/navigation';
import { DailyChecklistApi } from '@/services/api/daily-checklist/daily-checklist';
import { isResponseError } from '@/lib/api-helper';
import Link from 'next/link';
@@ -140,6 +140,8 @@ export function DetailDailyChecklistContent() {
useEffect(() => {
if (checklistId) {
fetchChecklistDetail();
} else {
router.push('/404');
}
}, [checklistId]);
@@ -802,10 +804,6 @@ export function DetailDailyChecklistContent() {
? 'pl-12'
: 'pl-8';
console.log({
activity,
});
rows.push(
<tr
key={`activity-${activity.id}-${index}`}