diff --git a/src/frontend/src/pages/build/BuildIndex.tsx b/src/frontend/src/pages/build/BuildIndex.tsx index 7ad932d08b..2b8f4e681c 100644 --- a/src/frontend/src/pages/build/BuildIndex.tsx +++ b/src/frontend/src/pages/build/BuildIndex.tsx @@ -1,6 +1,11 @@ import { t } from '@lingui/core/macro'; import { Stack } from '@mantine/core'; -import { IconCalendar, IconTable, IconTools } from '@tabler/icons-react'; +import { + IconCalendar, + IconListDetails, + IconTable, + IconTools +} from '@tabler/icons-react'; import { useMemo } from 'react'; import { ModelType } from '@lib/enums/ModelType'; @@ -16,6 +21,7 @@ import SegmentedControlPanel from '../../components/panels/SegmentedControlPanel import { useGlobalSettingsState } from '../../states/SettingsStates'; import { useUserState } from '../../states/UserState'; import { PartCategoryFilter } from '../../tables/Filter'; +import BuildOrderParametricTable from '../../tables/build/BuildOrderParametricTable'; import { BuildOrderTable } from '../../tables/build/BuildOrderTable'; function BuildOrderCalendar() { @@ -74,6 +80,12 @@ export default function BuildIndex() { label: t`Calendar View`, icon: , content: + }, + { + value: 'parametric', + label: t`Parametric View`, + icon: , + content: } ] }) diff --git a/src/frontend/src/tables/build/BuildOrderParametricTable.tsx b/src/frontend/src/tables/build/BuildOrderParametricTable.tsx new file mode 100644 index 0000000000..d9f85cb295 --- /dev/null +++ b/src/frontend/src/tables/build/BuildOrderParametricTable.tsx @@ -0,0 +1,40 @@ +import { ApiEndpoints, ModelType } from '@lib/index'; +import type { TableFilter } from '@lib/types/Filters'; +import type { TableColumn } from '@lib/types/Tables'; +import { type ReactNode, useMemo } from 'react'; +import { DescriptionColumn, ReferenceColumn } from '../ColumnRenderers'; +import { OrderStatusFilter, OutstandingFilter } from '../Filter'; +import ParametricDataTable from '../general/ParametricDataTable'; + +export default function BuildOrderParametricTable({ + queryParams +}: { + queryParams?: Record; +}): ReactNode { + const customColumns: TableColumn[] = useMemo(() => { + return [ + ReferenceColumn({ + switchable: false + }), + DescriptionColumn({ + accessor: 'title' + }) + ]; + }, []); + + const customFilters: TableFilter[] = useMemo(() => { + return [OutstandingFilter(), OrderStatusFilter({ model: ModelType.build })]; + }, []); + + return ( + + ); +}