diff --git a/src/app/report/expense/layout.tsx b/src/app/report/expense/layout.tsx
new file mode 100644
index 00000000..7220dfa1
--- /dev/null
+++ b/src/app/report/expense/layout.tsx
@@ -0,0 +1,11 @@
+import SuspenseHelper from '@/components/helper/SuspenseHelper';
+
+const Layout = ({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) => {
+ return {children};
+};
+
+export default Layout;
diff --git a/src/components/pages/report/expense/ReportExpenseTabs.tsx b/src/components/pages/report/expense/ReportExpenseTabs.tsx
index 045e7a99..f700a0bb 100644
--- a/src/components/pages/report/expense/ReportExpenseTabs.tsx
+++ b/src/components/pages/report/expense/ReportExpenseTabs.tsx
@@ -1,26 +1,38 @@
'use client';
-import { useState } from 'react';
+import { usePathname, useRouter, useSearchParams } from 'next/navigation';
import Tabs from '@/components/Tabs';
import { useTabActionsStore } from '@/stores/tab-actions/tab-actions.store';
import ReportExpenseTab from '@/components/pages/report/expense/tab/ReportExpenseTab';
import ReportDepreciationTab from '@/components/pages/report/expense/tab/ReportDepreciationTab';
+const VALID_TAB_IDS = ['operational-expense', 'depreciation'];
+
const ReportExpenseTabs = () => {
- const [activeTabId, setActiveTabId] = useState('1');
+ const router = useRouter();
+ const pathname = usePathname();
+ const searchParams = useSearchParams();
+ const tabParam = searchParams.get('tab') ?? 'operational-expense';
+ const activeTabId = VALID_TAB_IDS.includes(tabParam)
+ ? tabParam
+ : 'operational-expense';
const tabActions = useTabActionsStore((state) => state.tabActions);
+ const handleTabChange = (tabId: string) => {
+ router.push(`${pathname}?tab=${tabId}`);
+ };
+
const tabs = [
{
- id: '1',
+ id: 'operational-expense',
label: 'Laporan Biaya Operasional',
- content: ,
+ content: ,
},
{
- id: '2',
+ id: 'depreciation',
label: 'Laporan Depresiasi',
- content: ,
+ content: ,
},
];
@@ -30,7 +42,7 @@ const ReportExpenseTabs = () => {
tabs={tabs}
variant='boxed'
activeTabId={activeTabId}
- onTabChange={setActiveTabId}
+ onTabChange={handleTabChange}
className={{
tabHeaderWrapper:
'justify-between items-center p-3 border-b border-base-content/10',