Files
bigcapital/client/src/containers/Sales/Invoices/InvoiceDetails/InvoiceDrawerProvider.js
2021-03-06 20:29:32 +02:00

36 lines
891 B
JavaScript

import React, { createContext, useContext } from 'react';
import { useInvoice } from 'hooks/query';
import DashboardInsider from 'components/Dashboard/DashboardInsider';
const InvoiceDrawerContext = createContext();
/**
* Invoice drawer provider.
*/
function InvoiceDrawerProvider({ invoiceId, ...props }) {
// Fetch sale invoice details.
const {
data: { entries, ...invoice },
isLoading: isInvoiceLoading,
} = useInvoice(invoiceId, {
enabled: !!invoiceId,
});
// Provider payload.
const provider = {
invoiceId,
invoice,
entries,
isInvoiceLoading,
};
return (
<DashboardInsider loading={isInvoiceLoading}>
<InvoiceDrawerContext.Provider value={provider} {...props} />
</DashboardInsider>
);
}
const useInvoiceDrawerContext = () => useContext(InvoiceDrawerContext);
export { InvoiceDrawerProvider, useInvoiceDrawerContext };