prevent calling unnecessary call during logout and fixed currency displaying in update form
This commit is contained in:
parent
e7fcfdb154
commit
c14dc3d765
@ -165,7 +165,7 @@ const ManageExpense = ({ closeModal, expenseToEdit = null }) => {
|
||||
amount: data.amount || "",
|
||||
noOfPersons: data.noOfPersons || "",
|
||||
gstNumber: data.gstNumber || "",
|
||||
currencyId: data.currencyId || DEFAULT_CURRENCY,
|
||||
currencyId: data.currency.id || DEFAULT_CURRENCY,
|
||||
billAttachments: data.documents
|
||||
? data.documents.map((doc) => ({
|
||||
fileName: doc.fileName,
|
||||
|
||||
@ -16,11 +16,13 @@ import Error from "../common/Error";
|
||||
import { useRecurringExpenseContext } from "../../pages/RecurringExpense/RecurringExpensePage";
|
||||
import { useRecurringExpenseList } from "../../hooks/useExpense";
|
||||
import Pagination from "../common/Pagination";
|
||||
import { SpinnerLoader } from "../common/Loader";
|
||||
|
||||
const RecurringExpenseList = ({ search, filterStatuses }) => {
|
||||
const { setManageRequest, setVieRequest, setViewRecurring } = useRecurringExpenseContext();
|
||||
const { setManageRequest, setVieRequest, setViewRecurring } =
|
||||
useRecurringExpenseContext();
|
||||
const navigate = useNavigate();
|
||||
const [IsDeleteModalOpen, setIsDeleteModalOpen,] = useState(false);
|
||||
const [IsDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
||||
const [deletingId, setDeletingId] = useState(null);
|
||||
|
||||
const SelfId = useSelector(
|
||||
@ -68,7 +70,9 @@ const RecurringExpenseList = ({ search, filterStatuses }) => {
|
||||
align: "text-end",
|
||||
getValue: (e) =>
|
||||
e?.amount
|
||||
? `${e?.currency?.symbol ? e.currency.symbol + " " : ""}${e.amount.toLocaleString()}`
|
||||
? `${
|
||||
e?.currency?.symbol ? e.currency.symbol + " " : ""
|
||||
}${e.amount.toLocaleString()}`
|
||||
: "N/A",
|
||||
},
|
||||
{
|
||||
@ -108,7 +112,6 @@ const RecurringExpenseList = ({ search, filterStatuses }) => {
|
||||
debouncedSearch
|
||||
);
|
||||
|
||||
|
||||
const paginate = (page) => {
|
||||
if (page >= 1 && page <= (data?.totalPages ?? 1)) {
|
||||
setCurrentPage(page);
|
||||
@ -178,8 +181,9 @@ const RecurringExpenseList = ({ search, filterStatuses }) => {
|
||||
/>
|
||||
)}
|
||||
|
||||
<div className="card page-min-h table-responsive px-sm-4">
|
||||
<div className="card page-min-h table-responsive px-sm-4 ">
|
||||
<div className="card-datatable" id="payment-request-table">
|
||||
{Array.isArray(filteredData) && filteredData.length > 0 && (
|
||||
<table className="table border-top dataTable text-nowrap align-middle">
|
||||
<thead>
|
||||
<tr>
|
||||
@ -267,19 +271,26 @@ const RecurringExpenseList = ({ search, filterStatuses }) => {
|
||||
<td
|
||||
colSpan={recurringExpenseColumns?.length + 1}
|
||||
className="text-center border-0 py-8"
|
||||
>
|
||||
<p>No Recurring Expense Found</p>
|
||||
</td>
|
||||
></td>
|
||||
</tr>
|
||||
)}
|
||||
</tbody>
|
||||
</table>
|
||||
)}
|
||||
{!filteredData ||
|
||||
filteredData.length === 0
|
||||
&& (
|
||||
<div className="d-flex justify-content-center align-items-center h-64">
|
||||
{isError ? (<p>{error.message}</p>):(<p>No Recurring Expense Found</p>)}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Pagination */}
|
||||
<Pagination
|
||||
currentPage={currentPage}
|
||||
totalPages={data?.totalPages}
|
||||
e
|
||||
onPageChange={paginate}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -147,32 +147,36 @@ export const useAuthModal = () => {
|
||||
|
||||
export const useLogout = () => {
|
||||
const queryClient = useQueryClient();
|
||||
const naviget = useNavigate();
|
||||
const navigate = useNavigate();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
return useMutation({
|
||||
mutationFn: async () => {
|
||||
let payload = {
|
||||
refreshToken:
|
||||
const refreshToken =
|
||||
localStorage.getItem("refreshToken") ||
|
||||
sessionStorage.getItem("refreshToken"),
|
||||
};
|
||||
return await AuthRepository.logout(payload);
|
||||
sessionStorage.getItem("refreshToken");
|
||||
|
||||
if (!refreshToken) return; // no call if already removed
|
||||
|
||||
return await AuthRepository.logout({ refreshToken });
|
||||
},
|
||||
|
||||
onSuccess: (data) => {
|
||||
onMutate: async () => {
|
||||
// Cancel all ongoing queries
|
||||
await queryClient.cancelQueries();
|
||||
},
|
||||
|
||||
onSuccess: () => {
|
||||
queryClient.clear();
|
||||
removeSession();
|
||||
dispatch(cacheProfileData(null));
|
||||
|
||||
// window.location.href = "/auth/login";
|
||||
naviget("/auth/login", { replace: true });
|
||||
if (onSuccessCallBack) onSuccessCallBack();
|
||||
navigate("/auth/login", { replace: true });
|
||||
},
|
||||
|
||||
onError: (error) => {
|
||||
showToast(error.message || "Error while creating project", "error");
|
||||
onError: () => {
|
||||
removeSession();
|
||||
queryClient.clear();
|
||||
navigate("/auth/login", { replace: true });
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@ -12,7 +12,9 @@ export const RecurringExpenseContext = createContext();
|
||||
export const useRecurringExpenseContext = () => {
|
||||
const context = useContext(RecurringExpenseContext);
|
||||
if (!context) {
|
||||
throw new Error("useRecurringExpenseContext must be used within an ExpenseProvider");
|
||||
throw new Error(
|
||||
"useRecurringExpenseContext must be used within an ExpenseProvider"
|
||||
);
|
||||
}
|
||||
return context;
|
||||
};
|
||||
@ -21,7 +23,10 @@ const RecurringExpensePage = () => {
|
||||
IsOpen: null,
|
||||
RecurringId: null,
|
||||
});
|
||||
const [viewRecurring, setViewRecurring] = useState({ view: false, recurringId: null })
|
||||
const [viewRecurring, setViewRecurring] = useState({
|
||||
view: false,
|
||||
recurringId: null,
|
||||
});
|
||||
|
||||
const [selectedStatuses, setSelectedStatuses] = useState(
|
||||
PAYEE_RECURRING_EXPENSE.map((s) => s.id)
|
||||
@ -31,14 +36,12 @@ const RecurringExpensePage = () => {
|
||||
|
||||
const contextValue = {
|
||||
setManageRequest,
|
||||
setViewRecurring
|
||||
setViewRecurring,
|
||||
};
|
||||
|
||||
const handleStatusChange = (id) => {
|
||||
setSelectedStatuses((prev) =>
|
||||
prev.includes(id)
|
||||
? prev.filter((s) => s !== id)
|
||||
: [...prev, id]
|
||||
prev.includes(id) ? prev.filter((s) => s !== id) : [...prev, id]
|
||||
);
|
||||
};
|
||||
return (
|
||||
@ -114,11 +117,13 @@ const RecurringExpensePage = () => {
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<RecurringExpenseList filterStatuses={selectedStatuses} search={search} />
|
||||
<RecurringExpenseList
|
||||
filterStatuses={selectedStatuses}
|
||||
search={search}
|
||||
/>
|
||||
|
||||
{ManageRequest.IsOpen && (
|
||||
<GlobalModel
|
||||
@ -155,8 +160,6 @@ const RecurringExpensePage = () => {
|
||||
<ViewRecurringExpense RecurringId={viewRecurring.recurringId} />
|
||||
</GlobalModel>
|
||||
)}
|
||||
|
||||
|
||||
</div>
|
||||
</RecurringExpenseContext.Provider>
|
||||
);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user