@@ -2,35 +2,58 @@ import { WbsNumber, wbsPipe } from 'shared';
22import CopyBOMView from './CopyBOMView' ;
33import { useGetAllCars } from '../../../../../hooks/cars.hooks' ;
44import { useAllProjects } from '../../../../../hooks/projects.hooks' ;
5- import { useCopyMaterialsToProject } from '../../../../../hooks/bom.hooks' ;
6- import React from 'react' ;
5+ import React , { useState } from 'react' ;
76import ErrorPage from '../../../../ErrorPage' ;
87import LoadingIndicator from '../../../../../components/LoadingIndicator' ;
8+ import BOMCopyConfirmModal from '../MaterialForm/BOMCopyConfirmModal' ;
99
1010export interface CopyBOMModalProps {
1111 open : boolean ;
1212 onHide : ( ) => void ;
1313 destinationWbsNum : WbsNumber ;
14+ currentProjectName : string ;
1415}
1516
16- const CopyBOMModal : React . FC < CopyBOMModalProps > = ( { open, onHide, destinationWbsNum } ) => {
17+ const CopyBOMModal : React . FC < CopyBOMModalProps > = ( { open, onHide, destinationWbsNum, currentProjectName } ) => {
1718 const { data : cars , isLoading : isLoadingCars , isError : carsIsError , error : carsError } = useGetAllCars ( ) ;
1819 const { data : projects , isLoading : isLoadingProjects , isError : projectsIsError , error : projectsError } = useAllProjects ( ) ;
19- const { mutateAsync : copyMaterials } = useCopyMaterialsToProject ( ) ;
20+ const [ confirmOpen , setConfirmOpen ] = useState ( false ) ;
21+ const [ confirmedMaterialIds , setConfirmedMaterialIds ] = useState < string [ ] > ( [ ] ) ;
22+ const [ confirmedSourceProjectName , setConfirmedSourceProjectName ] = useState ( '' ) ;
2023
2124 if ( isLoadingCars || ! cars || isLoadingProjects || ! projects ) return < LoadingIndicator /> ;
2225 if ( carsIsError ) return < ErrorPage message = { carsError ?. message } /> ;
2326 if ( projectsIsError ) return < ErrorPage message = { projectsError ?. message } /> ;
2427
25- const handleCopy = async ( materialIds : string [ ] ) => {
26- await copyMaterials ( {
27- materialIds,
28- destinationWbsNum : wbsPipe ( destinationWbsNum )
29- } ) ;
30- onHide ( ) ;
31- } ;
28+ const destinationWbs = wbsPipe ( destinationWbsNum ) ;
3229
33- return < CopyBOMView open = { open } onHide = { onHide } cars = { cars } projects = { projects } onCopy = { handleCopy } /> ;
30+ return (
31+ < >
32+ < CopyBOMView
33+ open = { open }
34+ onHide = { onHide }
35+ cars = { cars }
36+ projects = { projects }
37+ onCopy = { ( materialIds , sourceProjectName ) => {
38+ setConfirmedMaterialIds ( materialIds ) ;
39+ setConfirmedSourceProjectName ( sourceProjectName ) ;
40+ setConfirmOpen ( true ) ;
41+ } }
42+ />
43+ < BOMCopyConfirmModal
44+ open = { confirmOpen }
45+ onHide = { ( ) => setConfirmOpen ( false ) }
46+ onSuccess = { ( ) => {
47+ onHide ( ) ;
48+ setConfirmOpen ( false ) ;
49+ } }
50+ materialIds = { confirmedMaterialIds }
51+ sourceProjectName = { confirmedSourceProjectName }
52+ currentProjectName = { `${ wbsPipe ( destinationWbsNum ) } - ${ currentProjectName } ` }
53+ destinationWbsNum = { destinationWbs }
54+ />
55+ </ >
56+ ) ;
3457} ;
3558
3659export default CopyBOMModal ;
0 commit comments