@@ -39,6 +39,25 @@ export const PageWorksContent: FC<{
3939 /* eslint-disable react-hooks/exhaustive-deps */
4040 } , [ props . reduxWorks ] )
4141
42+ useEffect ( ( ) => {
43+ const saveData : any = async ( ) => {
44+ setLoading ( true )
45+ if ( ! props . reduxWorks ) {
46+ await props . createMemberWorks ( works || [ ] )
47+ } else {
48+ await props . updateMemberWorks ( works || [ ] )
49+ }
50+
51+ setLoading ( false )
52+ }
53+
54+ if ( ! ! works && ! _ . isEqual ( props . reduxWorks , works ) ) {
55+ saveData ( )
56+ . then ( _ . noop )
57+ }
58+ /* eslint-disable react-hooks/exhaustive-deps */
59+ } , [ works ] )
60+
4261 return (
4362 < div className = { classNames ( 'd-flex flex-column' , styles . container ) } >
4463 < h2 > Add your work experience here</ h2 >
@@ -58,13 +77,17 @@ export const PageWorksContent: FC<{
5877 setEditingWork ( work )
5978 setShowAddWorkModal ( true )
6079 } }
80+ disabled = { loading }
81+ className = { styles . btn }
6182 >
6283 < img width = { 15 } height = { 15 } src = { IconEdit } alt = '' />
6384 </ button >
6485 < button
6586 aria-label = 'delete'
6687 type = 'button'
6788 onClick = { ( ) => setWorks ( _ . filter ( works , w => w . id !== work . id ) ) }
89+ disabled = { loading }
90+ className = { styles . btn }
6891 >
6992 < img width = { 15 } height = { 15 } src = { IconTrash } alt = '' />
7093 </ button >
@@ -89,7 +112,7 @@ export const PageWorksContent: FC<{
89112 secondary
90113 iconToLeft
91114 onClick = { ( ) => setShowAddWorkModal ( true ) }
92- disabled = { props . loadingMemberTraits }
115+ disabled = { props . loadingMemberTraits || loading }
93116 >
94117 + add work experience
95118 </ Button >
@@ -113,6 +136,7 @@ export const PageWorksContent: FC<{
113136 size = 'lg'
114137 primary
115138 iconToLeft
139+ disabled = { loading }
116140 onClick = { ( ) => navigate ( '../skills' ) }
117141 >
118142 back
@@ -121,20 +145,8 @@ export const PageWorksContent: FC<{
121145 size = 'lg'
122146 primary
123147 iconToLeft
124- disabled = { loading || props . loadingMemberTraits }
125- onClick = { async ( ) => {
126- setLoading ( true )
127- if ( ! _ . isEqual ( props . reduxWorks , works ) ) {
128- if ( ! props . reduxWorks ) {
129- await props . createMemberWorks ( works || [ ] )
130- } else {
131- await props . updateMemberWorks ( works || [ ] )
132- }
133- }
134-
135- setLoading ( false )
136- navigate ( '../educations' )
137- } }
148+ disabled = { loading }
149+ onClick = { ( ) => navigate ( '../educations' ) }
138150 >
139151 next
140152 </ Button >
0 commit comments