Refactor_Expenses #321
@ -4,7 +4,7 @@ import Avatar from "../common/Avatar";
|
|||||||
import { useExpenseContext } from "../../pages/Expense/ExpensePage";
|
import { useExpenseContext } from "../../pages/Expense/ExpensePage";
|
||||||
import { formatDate, formatUTCToLocalTime } from "../../utils/dateUtils";
|
import { formatDate, formatUTCToLocalTime } from "../../utils/dateUtils";
|
||||||
import Pagination from "../common/Pagination";
|
import Pagination from "../common/Pagination";
|
||||||
import { APPROVE_EXPENSE } from "../../utils/constants";
|
import { APPROVE_EXPENSE, EXPENSE_DRAFT, EXPENSE_REJECTEDBY } from "../../utils/constants";
|
||||||
import { getColorNameFromHex, useDebounce } from "../../utils/appUtils";
|
import { getColorNameFromHex, useDebounce } from "../../utils/appUtils";
|
||||||
import { ExpenseTableSkeleton } from "./ExpenseSkeleton";
|
import { ExpenseTableSkeleton } from "./ExpenseSkeleton";
|
||||||
import ConfirmModal from "../common/ConfirmModal";
|
import ConfirmModal from "../common/ConfirmModal";
|
||||||
@ -164,7 +164,19 @@ const ExpenseList = ({ filters, groupBy = "transactionDate",searchText }) => {
|
|||||||
? groupByField(data?.data ?? [], groupBy)
|
? groupByField(data?.data ?? [], groupBy)
|
||||||
: { All: data?.data ?? [] };
|
: { All: data?.data ?? [] };
|
||||||
const IsGroupedByDate = ["transactionDate", "createdAt"].includes(groupBy);
|
const IsGroupedByDate = ["transactionDate", "createdAt"].includes(groupBy);
|
||||||
|
const canEditExpense = (expense) => {
|
||||||
|
return (
|
||||||
|
(expense.status.id === EXPENSE_DRAFT ||
|
||||||
|
EXPENSE_REJECTEDBY.includes(expense.status.id)) &&
|
||||||
|
expense.createdBy?.id === SelfId
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const canDetetExpense = (expense)=>{
|
||||||
|
return (expense.status.id === EXPENSE_DRAFT && expense.createdBy.id === SelfId )
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{IsDeleteModalOpen && (
|
{IsDeleteModalOpen && (
|
||||||
@ -255,29 +267,28 @@ const ExpenseList = ({ filters, groupBy = "transactionDate",searchText }) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
></i>
|
></i>
|
||||||
{(expense.status.name === "Draft" ||
|
{canEditExpense(expense) && (
|
||||||
expense.status.name === "Rejected") &&
|
<i
|
||||||
expense.createdBy.id === SelfId && (
|
className="bx bx-edit text-secondary cursor-pointer"
|
||||||
<i
|
onClick={() =>
|
||||||
className="bx bx-edit text-secondary cursor-pointer"
|
setManageExpenseModal({
|
||||||
onClick={() =>
|
IsOpen: true,
|
||||||
setManageExpenseModal({
|
expenseId: expense.id,
|
||||||
IsOpen: true,
|
})
|
||||||
expenseId: expense.id,
|
}
|
||||||
})
|
></i>
|
||||||
}
|
)}
|
||||||
></i>
|
|
||||||
)}
|
{canDetetExpense(expense) && (
|
||||||
{expense.status.name === "Draft" &&
|
<i
|
||||||
expense.createdBy.id === SelfId && (
|
|
||||||
<i
|
|
||||||
className="bx bx-trash text-danger cursor-pointer"
|
className="bx bx-trash text-danger cursor-pointer"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setIsDeleteModalOpen(true);
|
setIsDeleteModalOpen(true);
|
||||||
setDeletingId(expense.id);
|
setDeletingId(expense.id);
|
||||||
}}
|
}}
|
||||||
></i>
|
></i>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user