Files
bigcapital/src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsProvider.js
2022-03-28 16:01:07 +02:00

48 lines
1.2 KiB
JavaScript

import React from 'react';
import { Features } from 'common';
import { useBranches } from 'hooks/query';
import { useFeatureCan } from 'hooks/state';
import { FinancialHeaderLoadingSkeleton } from '../FinancialHeaderLoadingSkeleton';
const BalanceSheetHeaderDimensionsPanelContext = React.createContext();
/**
* BL sheet header provider.
* @returns
*/
function BalanceSheetHeaderDimensionsProvider({ query, ...props }) {
// Features guard.
const { featureCan } = useFeatureCan();
const isBranchFeatureCan = featureCan(Features.Branches);
// Fetches the branches list.
const { isLoading: isBranchesLoading, data: branches } = useBranches(query, {
enabled: isBranchFeatureCan,
keepPreviousData: true,
});
// Provider
const provider = {
branches,
isBranchesLoading,
};
return isBranchesLoading ? (
<FinancialHeaderLoadingSkeleton />
) : (
<BalanceSheetHeaderDimensionsPanelContext.Provider
value={provider}
{...props}
/>
);
}
const useBalanceSheetHeaderDimensionsPanelContext = () =>
React.useContext(BalanceSheetHeaderDimensionsPanelContext);
export {
BalanceSheetHeaderDimensionsProvider,
useBalanceSheetHeaderDimensionsPanelContext,
};