diff --git a/src/frontend/src/pages/part/PartPricingPanel.tsx b/src/frontend/src/pages/part/PartPricingPanel.tsx index ef2091dc5b..44e8439405 100644 --- a/src/frontend/src/pages/part/PartPricingPanel.tsx +++ b/src/frontend/src/pages/part/PartPricingPanel.tsx @@ -1,6 +1,6 @@ import { t } from '@lingui/macro'; import { Accordion, Alert, LoadingOverlay, Stack, Text } from '@mantine/core'; -import { ReactNode, useMemo } from 'react'; +import { useMemo, useState } from 'react'; import { ApiEndpoints } from '../../enums/ApiEndpoints'; import { UserRoles } from '../../enums/Roles'; @@ -53,6 +53,17 @@ export default function PartPricingPanel({ part }: { part: any }) { return user.hasViewRole(UserRoles.sales_order) && part?.salable; }, [user, part]); + const [value, setValue] = useState([panelOptions.overview]); + function doNavigation(panel: panelOptions) { + if (!value.includes(panel)) { + setValue([...value, panel]); + } + const element = document.getElementById(panel); + if (element) { + element.scrollIntoView(); + } + } + return ( @@ -62,9 +73,15 @@ export default function PartPricingPanel({ part }: { part: any }) { )} {pricing && ( - + } + content={ + + } label={panelOptions.overview} title={t`Pricing Overview`} visible={true} diff --git a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx index 583461b03e..5f642381cf 100644 --- a/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx +++ b/src/frontend/src/pages/part/pricing/PricingOverviewPanel.tsx @@ -1,13 +1,5 @@ import { t } from '@lingui/macro'; -import { - Alert, - Anchor, - Group, - Paper, - SimpleGrid, - Stack, - Text -} from '@mantine/core'; +import { Alert, Group, Paper, SimpleGrid, Stack, Text } from '@mantine/core'; import { IconBuildingWarehouse, IconChartDonut, @@ -45,10 +37,12 @@ interface PricingOverviewEntry { export default function PricingOverviewPanel({ part, - pricing + pricing, + doNavigation }: { part: any; pricing: any; + doNavigation: (panel: panelOptions) => void; }): ReactNode { const columns: DataTableColumn[] = useMemo(() => { return [ @@ -59,14 +53,9 @@ export default function PricingOverviewPanel({ return ( {record.icon} - {record.name !== panelOptions.overall && - record.name !== panelOptions.override ? ( - - {record.title} - - ) : ( - {record.title} - )} + doNavigation(record.name)}> + {record.title} + ); }