import React from 'react'; import intl from 'react-intl-universal'; import { Alignment, NavbarGroup, NavbarDivider, Button, Classes, } from '@blueprintjs/core'; import styled from 'styled-components'; import { useSetPrimaryBranchToForm, useSetPrimaryWarehouseToForm, } from './utils'; import { useFeatureCan } from 'hooks/state'; import { Icon, BranchSelect, FeatureCan, WarehouseSelect, FormTopbar, DetailsBarSkeletonBase, } from 'components'; import { useEstimateFormContext } from './EstimateFormProvider'; import { Features } from 'common'; /** * Estimate form topbar . * @returns {JSX.Element} */ export default function EstimtaeFormTopBar() { // Features guard. const { featureCan } = useFeatureCan(); // Sets the primary warehouse to form. useSetPrimaryWarehouseToForm(); // Sets the primary branch to form. useSetPrimaryBranchToForm(); // Can't display the navigation bar if warehouses or branches feature is not enabled. if (!featureCan(Features.Warehouses) && !featureCan(Features.Branches)) { return null; } return ( {featureCan(Features.Warehouses) && featureCan(Features.Branches) && ( )} ); } function EstimateFormSelectBranch() { // Estimate form context. const { branches, isBranchesLoading } = useEstimateFormContext(); return isBranchesLoading ? ( ) : ( ); } function EstimateFormSelectWarehouse() { // Estimate form context. const { warehouses, isWarehouesLoading } = useEstimateFormContext(); return isWarehouesLoading ? ( ) : ( ); } function EstimateWarehouseSelectButton({ label }) { return (