diff --git a/resources/js/Pages/Expense/DetailModal.jsx b/resources/js/Pages/Expense/DetailModal.jsx
new file mode 100644
index 0000000..9c5e4ae
--- /dev/null
+++ b/resources/js/Pages/Expense/DetailModal.jsx
@@ -0,0 +1,123 @@
+import React, { useEffect } from "react";
+import Modal from "@/Components/Modal";
+import { useForm, usePage } from "@inertiajs/inertia-react";
+import { formatDate, formatIDR } from "@/Utils";
+
+export default function FormModal(props) {
+ const { auth: { user } } = usePage().props
+
+ const { modalState } = props
+ const { data, setData } = useForm({
+ id: null,
+ name: "",
+ description: "",
+ job_number: "",
+ date_expense: new Date(),
+ amount: "",
+ isIncome: 0,
+ is_paid: 0,
+ status: ""
+ })
+
+ const handleClose = () => {
+ modalState.toggle()
+ }
+
+ useEffect(() => {
+ const expense = modalState.data
+ if (expense !== null) {
+ setData({
+ id: expense?.id,
+ name: expense?.name,
+ description: expense?.description,
+ job_number: expense?.job_number,
+ date_expense: expense?.date_expense,
+ amount: expense?.amount,
+ isIncome: expense?.isIncome,
+ is_paid: expense?.is_paid,
+ status: expense?.status,
+ })
+ return
+ }
+ }, [modalState])
+
+ return (
+
+
+ {data.isIncome === 0 && (
+ <>
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/resources/js/Pages/Expense/Index.jsx b/resources/js/Pages/Expense/Index.jsx
index a93ff08..35087b0 100644
--- a/resources/js/Pages/Expense/Index.jsx
+++ b/resources/js/Pages/Expense/Index.jsx
@@ -12,6 +12,7 @@ import Pagination from '@/Components/Pagination';
import Print from './Print';
import ModalConfirm from '@/Components/ModalConfirm';
import FormModal from './FormModal';
+import DetailModal from './DetailModal';
import { DatePickerRangeInput } from '@/Components/DatePickerInput';
import { useModalState } from '@/Hook';
import { formatDate, formatIDR } from '@/Utils';
@@ -64,12 +65,11 @@ export default function Dashboard(props) {
formModal.toggle()
}
- // TODO:
- // add -> operator hanya expense, kasir expense/income
- // edit -> menyesuaikan
- // detail
- // export
- //
+ const detailModal = useModalState()
+ const handleDetail = (expense) => {
+ detailModal.setData(expense)
+ detailModal.toggle()
+ }
const handleCheckItem = (e) => {
setItems(items.map(item => {
@@ -288,7 +288,7 @@ export default function Dashboard(props) {
) : (
<>