Files
bigcapital/src/containers/FinancialStatements/VendorsTransactions/VendorsTransactionsProvider.js
2021-09-21 17:13:53 +02:00

43 lines
1.2 KiB
JavaScript

import React, { createContext, useContext, useMemo } from 'react';
import FinancialReportPage from '../FinancialReportPage';
import { useVendorsTransactionsReport } from 'hooks/query';
import { transformFilterFormToQuery } from '../common';
const VendorsTransactionsContext = createContext();
/**
* Vendors transactions provider.
*/
function VendorsTransactionsProvider({ filter, ...props }) {
const query = useMemo(() => transformFilterFormToQuery(filter), [filter]);
// Fetch vendors transactions based on the given query.
const {
data: vendorsTransactions,
isFetching: isVendorsTransactionFetching,
isLoading: isVendorsTransactionsLoading,
refetch,
} = useVendorsTransactionsReport(query, { keepPreviousData: true });
const provider = {
vendorsTransactions,
isVendorsTransactionsLoading,
isVendorsTransactionFetching,
refetch,
filter,
query,
};
return (
<FinancialReportPage name={'vendor-transactions'}>
<VendorsTransactionsContext.Provider value={provider} {...props} />
</FinancialReportPage>
);
}
const useVendorsTransactionsContext = () =>
useContext(VendorsTransactionsContext);
export { VendorsTransactionsProvider, useVendorsTransactionsContext };