Refactor
This commit is contained in:
parent
669ca7ef82
commit
9a2ed789c1
|
|
@ -36,7 +36,7 @@ import {
|
|||
} from '../hooks/UseGenerator';
|
||||
import { useGlobalSettingsState } from '../states/SettingsStates';
|
||||
import { RenderPartColumn } from '../tables/ColumnRenderers';
|
||||
import { ProjectCodeField, TagsField } from './CommonFields';
|
||||
import { DuplicateField, ProjectCodeField, TagsField } from './CommonFields';
|
||||
|
||||
/**
|
||||
* Field set for BuildOrder forms
|
||||
|
|
@ -136,15 +136,12 @@ export function useBuildOrderFields({
|
|||
}
|
||||
},
|
||||
external: {},
|
||||
duplicate: {
|
||||
children: {
|
||||
original: {
|
||||
value: duplicateBuildId,
|
||||
hidden: true
|
||||
},
|
||||
duplicate: DuplicateField({
|
||||
originalId: duplicateBuildId,
|
||||
extraFields: {
|
||||
copy_parameters: {}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
if (!globalSettings.isSet('PROJECT_CODES_ENABLED', true)) {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,26 @@ import type { ApiFormFieldType } from '@lib/types/Forms';
|
|||
import { t } from '@lingui/core/macro';
|
||||
import { IconList } from '@tabler/icons-react';
|
||||
|
||||
// Generic field for implementing a "duplication options" form field
|
||||
export function DuplicateField({
|
||||
originalId,
|
||||
extraFields
|
||||
}: Readonly<{
|
||||
originalId?: number | null;
|
||||
extraFields?: Record<string, any>;
|
||||
}>): ApiFormFieldType {
|
||||
return {
|
||||
children: {
|
||||
original: {
|
||||
value: originalId,
|
||||
hidden: true
|
||||
},
|
||||
...extraFields
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Generic field for rendering a list of tags within a form
|
||||
export function TagsField({
|
||||
label,
|
||||
description,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import {
|
|||
IconPhone
|
||||
} from '@tabler/icons-react';
|
||||
import { useMemo, useState } from 'react';
|
||||
import { TagsField } from './CommonFields';
|
||||
import { DuplicateField, TagsField } from './CommonFields';
|
||||
|
||||
/**
|
||||
* Field set for SupplierPart instance
|
||||
|
|
@ -98,15 +98,12 @@ export function useSupplierPartFields({
|
|||
},
|
||||
primary: {},
|
||||
active: {},
|
||||
duplicate: {
|
||||
children: {
|
||||
original: {
|
||||
value: duplicateSupplierPartId,
|
||||
hidden: true
|
||||
},
|
||||
duplicate: DuplicateField({
|
||||
originalId: duplicateSupplierPartId,
|
||||
extraFields: {
|
||||
copy_parameters: {}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
if (!duplicateSupplierPartId) {
|
||||
|
|
@ -146,15 +143,12 @@ export function useManufacturerPartFields({
|
|||
description: {},
|
||||
tags: TagsField({}),
|
||||
link: {},
|
||||
duplicate: {
|
||||
children: {
|
||||
original: {
|
||||
value: duplicateManufacturerPartId,
|
||||
hidden: true
|
||||
},
|
||||
duplicate: DuplicateField({
|
||||
originalId: duplicateManufacturerPartId,
|
||||
extraFields: {
|
||||
copy_parameters: {}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
if (!duplicateManufacturerPartId) {
|
||||
|
|
@ -194,15 +188,12 @@ export function companyFields({
|
|||
is_manufacturer: {},
|
||||
is_customer: {},
|
||||
active: {},
|
||||
duplicate: {
|
||||
children: {
|
||||
original: {
|
||||
value: duplicateCompanyId,
|
||||
hidden: true
|
||||
},
|
||||
duplicate: DuplicateField({
|
||||
originalId: duplicateCompanyId,
|
||||
extraFields: {
|
||||
copy_parameters: {}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
if (!duplicateCompanyId) {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import { ActionDropdown } from '../../components/items/ActionDropdown';
|
|||
import ImportPartWizard from '../../components/wizards/ImportPartWizard';
|
||||
import OrderPartsWizard from '../../components/wizards/OrderPartsWizard';
|
||||
import { formatDecimal, formatPriceRange } from '../../defaults/formatters';
|
||||
import { DuplicateField } from '../../forms/CommonFields';
|
||||
import { dataImporterSessionFields } from '../../forms/ImporterForms';
|
||||
import { usePartFields } from '../../forms/PartForms';
|
||||
import { InvenTreeIcon } from '../../functions/icons';
|
||||
|
|
@ -312,12 +313,9 @@ export function PartListTable({
|
|||
const duplicatePartFields: ApiFormFieldSet = useMemo(() => {
|
||||
return {
|
||||
...createPartFields,
|
||||
duplicate: {
|
||||
children: {
|
||||
part: {
|
||||
value: selectedPart.pk,
|
||||
hidden: true
|
||||
},
|
||||
duplicate: DuplicateField({
|
||||
originalId: selectedPart.pk,
|
||||
extraFields: {
|
||||
copy_image: {
|
||||
value: true
|
||||
},
|
||||
|
|
@ -337,7 +335,7 @@ export function PartListTable({
|
|||
hidden: !selectedPart.testable
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
};
|
||||
}, [createPartFields, globalSettings, selectedPart]);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue