refactor(intake): move document workspace initialization
This commit is contained in:
parent
a30151a24a
commit
645130a042
@ -423,6 +423,9 @@ import {
|
||||
PRODUCT_PHOTO_PANEL_ORDER,
|
||||
QUALITY_STANDARD_FILE_ACCEPT,
|
||||
areProductPhotoSelectionsEqual,
|
||||
createInitialDocumentWorkspaceApprovedAt,
|
||||
createInitialDocumentWorkspaceConfirmations,
|
||||
createInitialDocumentWorkspaceNotes,
|
||||
buildDocumentWorkspaceRevisionFileEntries,
|
||||
buildProductPhotoMetadata,
|
||||
getDocumentWorkspaceCategoryLabel,
|
||||
@ -4395,52 +4398,6 @@ function buildOpeningReferenceFormValues(
|
||||
};
|
||||
}
|
||||
|
||||
function createInitialDocumentWorkspaceNotes(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
) {
|
||||
return UPLOAD_CATEGORY_PANEL_ORDER.reduce<
|
||||
Record<DocumentWorkspaceCategory, string>
|
||||
>(
|
||||
(current, category) => {
|
||||
current[category] = product?.documentWorkspaceNotes?.[category] ?? "";
|
||||
return current;
|
||||
},
|
||||
{ ...EMPTY_DOCUMENT_WORKSPACE_NOTES },
|
||||
);
|
||||
}
|
||||
|
||||
function createInitialDocumentWorkspaceConfirmations(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
): NonIntegratedDocumentWorkspaceConfirmationMap {
|
||||
const confirmations = product?.documentWorkspaceConfirmations
|
||||
? { ...product.documentWorkspaceConfirmations }
|
||||
: createDefaultDocumentWorkspaceConfirmations(false);
|
||||
|
||||
if (getProjectReviewApprovedAtFallback(product)) {
|
||||
confirmations[PROJECT_REVIEW_WORKSPACE_CATEGORY] = true;
|
||||
}
|
||||
|
||||
return confirmations;
|
||||
}
|
||||
|
||||
function createInitialDocumentWorkspaceApprovedAt(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
): NonIntegratedDocumentWorkspaceApprovalMap {
|
||||
const approvedAt = product?.documentWorkspaceApprovedAt
|
||||
? { ...product.documentWorkspaceApprovedAt }
|
||||
: {};
|
||||
|
||||
const projectReviewApprovedAt = getProjectReviewApprovedAtFallback(product);
|
||||
if (
|
||||
projectReviewApprovedAt &&
|
||||
!approvedAt[PROJECT_REVIEW_WORKSPACE_CATEGORY]
|
||||
) {
|
||||
approvedAt[PROJECT_REVIEW_WORKSPACE_CATEGORY] = projectReviewApprovedAt;
|
||||
}
|
||||
|
||||
return approvedAt;
|
||||
}
|
||||
|
||||
const NON_INTEGRATED_IMAGE_UPLOAD_MAX_DIMENSION = 2048;
|
||||
|
||||
function nonIntegratedImageUploadFileName(file: File) {
|
||||
@ -5542,14 +5499,26 @@ export default function NonIntegratedDetailClient({
|
||||
);
|
||||
const [documentWorkspaceNotes, setDocumentWorkspaceNotes] = useState<
|
||||
Record<DocumentWorkspaceCategory, string>
|
||||
>(() => createInitialDocumentWorkspaceNotes(existingProduct));
|
||||
>(() =>
|
||||
createInitialDocumentWorkspaceNotes(
|
||||
existingProduct,
|
||||
UPLOAD_CATEGORY_PANEL_ORDER,
|
||||
EMPTY_DOCUMENT_WORKSPACE_NOTES,
|
||||
),
|
||||
);
|
||||
const [documentWorkspaceConfirmations, setDocumentWorkspaceConfirmations] =
|
||||
useState<NonIntegratedDocumentWorkspaceConfirmationMap>(() =>
|
||||
createInitialDocumentWorkspaceConfirmations(existingProduct),
|
||||
createInitialDocumentWorkspaceConfirmations(
|
||||
existingProduct,
|
||||
PROJECT_REVIEW_WORKSPACE_CATEGORY,
|
||||
),
|
||||
);
|
||||
const [documentWorkspaceApprovedAt, setDocumentWorkspaceApprovedAt] =
|
||||
useState<NonIntegratedDocumentWorkspaceApprovalMap>(() =>
|
||||
createInitialDocumentWorkspaceApprovedAt(existingProduct),
|
||||
createInitialDocumentWorkspaceApprovedAt(
|
||||
existingProduct,
|
||||
PROJECT_REVIEW_WORKSPACE_CATEGORY,
|
||||
),
|
||||
);
|
||||
const [selectedWorkspaceFileId, setSelectedWorkspaceFileId] = useState("");
|
||||
const [activeProductDataGroup, setActiveProductDataGroup] =
|
||||
|
||||
@ -1,10 +1,15 @@
|
||||
import {
|
||||
createDefaultDocumentWorkspaceConfirmations,
|
||||
getNonIntegratedDocumentWorkspaceCategoryLabel,
|
||||
type NonIntegratedDetectionAssetType,
|
||||
type NonIntegratedDocumentWorkspaceApprovalMap,
|
||||
type NonIntegratedDocumentWorkspaceConfirmationMap,
|
||||
type NonIntegratedDocumentWorkspaceCategory,
|
||||
type NonIntegratedProductRecord,
|
||||
type NonIntegratedUploadFile,
|
||||
type NonIntegratedWorkflowNodeCategory,
|
||||
} from "./nonIntegratedStorage";
|
||||
import { getProjectReviewApprovedAtFallback } from "./openingReferenceHelpers";
|
||||
import {
|
||||
getDefaultProductPhotoStyleKey,
|
||||
getFileNameWithoutExtension,
|
||||
@ -109,6 +114,56 @@ export function buildDocumentWorkspaceRevisionFileEntries(
|
||||
}));
|
||||
}
|
||||
|
||||
export function createInitialDocumentWorkspaceNotes(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
uploadCategoryPanelOrder: DocumentWorkspaceCategory[],
|
||||
emptyDocumentWorkspaceNotes: Record<DocumentWorkspaceCategory, string>,
|
||||
) {
|
||||
return uploadCategoryPanelOrder.reduce<
|
||||
Record<DocumentWorkspaceCategory, string>
|
||||
>(
|
||||
(current, category) => {
|
||||
current[category] = product?.documentWorkspaceNotes?.[category] ?? "";
|
||||
return current;
|
||||
},
|
||||
{ ...emptyDocumentWorkspaceNotes },
|
||||
);
|
||||
}
|
||||
|
||||
export function createInitialDocumentWorkspaceConfirmations(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
projectReviewWorkspaceCategory: DocumentWorkspaceCategory,
|
||||
): NonIntegratedDocumentWorkspaceConfirmationMap {
|
||||
const confirmations = product?.documentWorkspaceConfirmations
|
||||
? { ...product.documentWorkspaceConfirmations }
|
||||
: createDefaultDocumentWorkspaceConfirmations(false);
|
||||
|
||||
if (getProjectReviewApprovedAtFallback(product)) {
|
||||
confirmations[projectReviewWorkspaceCategory] = true;
|
||||
}
|
||||
|
||||
return confirmations;
|
||||
}
|
||||
|
||||
export function createInitialDocumentWorkspaceApprovedAt(
|
||||
product: NonIntegratedProductRecord | null,
|
||||
projectReviewWorkspaceCategory: DocumentWorkspaceCategory,
|
||||
): NonIntegratedDocumentWorkspaceApprovalMap {
|
||||
const approvedAt = product?.documentWorkspaceApprovedAt
|
||||
? { ...product.documentWorkspaceApprovedAt }
|
||||
: {};
|
||||
|
||||
const projectReviewApprovedAt = getProjectReviewApprovedAtFallback(product);
|
||||
if (
|
||||
projectReviewApprovedAt &&
|
||||
!approvedAt[projectReviewWorkspaceCategory]
|
||||
) {
|
||||
approvedAt[projectReviewWorkspaceCategory] = projectReviewApprovedAt;
|
||||
}
|
||||
|
||||
return approvedAt;
|
||||
}
|
||||
|
||||
export const QUALITY_STANDARD_FILE_ACCEPT =
|
||||
".xls,.xlsx,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user