mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-20 23:00:34 +00:00
feat(InvoiceForm): skeleton loading on branch and warehouse select button.
This commit is contained in:
@@ -5,8 +5,10 @@ import {
|
|||||||
NavbarGroup,
|
NavbarGroup,
|
||||||
NavbarDivider,
|
NavbarDivider,
|
||||||
Button,
|
Button,
|
||||||
|
Classes,
|
||||||
} from '@blueprintjs/core';
|
} from '@blueprintjs/core';
|
||||||
import intl from 'react-intl-universal';
|
import intl from 'react-intl-universal';
|
||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
import { useFeatureCan } from 'hooks/state';
|
import { useFeatureCan } from 'hooks/state';
|
||||||
import { Icon, BranchSelect, FeatureCan, WarehouseSelect } from 'components';
|
import { Icon, BranchSelect, FeatureCan, WarehouseSelect } from 'components';
|
||||||
@@ -18,9 +20,6 @@ import { Features } from 'common';
|
|||||||
* @returns {JSX.Element}
|
* @returns {JSX.Element}
|
||||||
*/
|
*/
|
||||||
export default function InvoiceFormTopBar() {
|
export default function InvoiceFormTopBar() {
|
||||||
// Invoice form context.
|
|
||||||
const { branches, warehouses } = useInvoiceFormContext();
|
|
||||||
|
|
||||||
// Features guard.
|
// Features guard.
|
||||||
const { featureCan } = useFeatureCan();
|
const { featureCan } = useFeatureCan();
|
||||||
|
|
||||||
@@ -31,28 +30,49 @@ export default function InvoiceFormTopBar() {
|
|||||||
return (
|
return (
|
||||||
<Navbar className={'navbar--dashboard-topbar'}>
|
<Navbar className={'navbar--dashboard-topbar'}>
|
||||||
<NavbarGroup align={Alignment.LEFT}>
|
<NavbarGroup align={Alignment.LEFT}>
|
||||||
|
<FeatureCan feature={Features.Branches}>
|
||||||
|
<InvoiceFormSelectBranch />
|
||||||
|
</FeatureCan>
|
||||||
|
{featureCan(Features.Warehouses) && featureCan(Features.Branches) && (
|
||||||
|
<NavbarDivider />
|
||||||
|
)}
|
||||||
<FeatureCan feature={Features.Warehouses}>
|
<FeatureCan feature={Features.Warehouses}>
|
||||||
|
<InvoiceFormSelectWarehouse />
|
||||||
|
</FeatureCan>
|
||||||
|
</NavbarGroup>
|
||||||
|
</Navbar>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function InvoiceFormSelectBranch() {
|
||||||
|
// Invoice form context.
|
||||||
|
const { branches, isBranchesLoading } = useInvoiceFormContext();
|
||||||
|
|
||||||
|
return isBranchesLoading ? (
|
||||||
|
<DetailsBarSkeletonBase className={Classes.SKELETON} />
|
||||||
|
) : (
|
||||||
<BranchSelect
|
<BranchSelect
|
||||||
name={'branch_id'}
|
name={'branch_id'}
|
||||||
branches={branches}
|
branches={branches}
|
||||||
input={InvoiceBranchSelectButton}
|
input={InvoiceBranchSelectButton}
|
||||||
popoverProps={{ minimal: true }}
|
popoverProps={{ minimal: true }}
|
||||||
/>
|
/>
|
||||||
</FeatureCan>
|
);
|
||||||
|
}
|
||||||
|
|
||||||
{featureCan(Features.Warehouses) && featureCan(Features.Branches) && (
|
function InvoiceFormSelectWarehouse() {
|
||||||
<NavbarDivider />
|
// Invoice form context.
|
||||||
)}
|
const { warehouses, isWarehouesLoading } = useInvoiceFormContext();
|
||||||
<FeatureCan feature={Features.Warehouses}>
|
|
||||||
|
return isWarehouesLoading ? (
|
||||||
|
<DetailsBarSkeletonBase className={Classes.SKELETON} />
|
||||||
|
) : (
|
||||||
<WarehouseSelect
|
<WarehouseSelect
|
||||||
name={'warehouse_id'}
|
name={'warehouse_id'}
|
||||||
warehouses={warehouses}
|
warehouses={warehouses}
|
||||||
input={InvoiceWarehouseSelectButton}
|
input={InvoiceWarehouseSelectButton}
|
||||||
popoverProps={{ minimal: true }}
|
popoverProps={{ minimal: true }}
|
||||||
/>
|
/>
|
||||||
</FeatureCan>
|
|
||||||
</NavbarGroup>
|
|
||||||
</Navbar>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,3 +97,12 @@ function InvoiceBranchSelectButton({ label }) {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const DetailsBarSkeletonBase = styled.div`
|
||||||
|
letter-spacing: 10px;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-left: 10px;
|
||||||
|
font-size: 8px;
|
||||||
|
width: 140px;
|
||||||
|
height: 10px;
|
||||||
|
`;
|
||||||
|
|||||||
Reference in New Issue
Block a user