1
- import React , { useState , useContext , useEffect } from 'react' ;
1
+ import React , { useState , useContext , useEffect } from 'react' ;
2
2
import Modal from 'react-modal'
3
3
import AppContext from "../components/AppContext" ;
4
4
5
5
6
- const ModalUsablePrint = ( { show, handleOK, handleCancel, paperusablesize } ) => {
6
+ const ModalPrintSize = ( { show, handleOK, handleCancel, paperusablesize } ) => {
7
7
const { GetLocaleString } = useContext ( AppContext ) ;
8
- const [ SelectedSize , setSelectedSize ] = useState ( 1 ) ;
9
- const [ Name , setName ] = useState ( 'New' ) ;
8
+ const [ SelectedSize , setSelectedSize ] = useState ( 0 ) ;
9
+ const [ Name , setName ] = useState ( 'New' ) ;
10
10
const [ usableWidth , setUsableWidth ] = useState ( 210 ) ;
11
11
const [ usableHeight , setUsableHeight ] = useState ( 297 - 45 ) ;
12
12
const [ usableSize , setUsableSize ] = useState ( [ ...paperusablesize ] || [ ] ) ;
13
- console . log ( "ModalUsablePrint" ) ;
14
- console . log ( paperusablesize ) ;
15
- console . log ( usableSize ) ;
16
13
17
-
18
- useEffect ( ( ) => {
19
- console . log ( "useeffect" ) ;
14
+ useEffect ( ( ) => {
15
+
20
16
if ( usableSize . length === 0 )
17
+ {
21
18
setUsableSize ( [ ...paperusablesize ] || [ ] ) ;
22
-
23
- return ( ( ) => { } ) ;
19
+ if ( paperusablesize && paperusablesize . length > 0 )
20
+ {
21
+ setName ( paperusablesize [ 0 ] . name ) ;
22
+ setUsableHeight ( paperusablesize [ 0 ] . height ) ;
23
+ setUsableWidth ( paperusablesize [ 0 ] . width ) ;
24
+ }
25
+ }
26
+
27
+ return ( ( ) => { } ) ;
24
28
} , [ usableSize ] ) ;
25
29
26
30
const render_lock = ( locked ) => {
@@ -36,64 +40,100 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
36
40
handleCancel ( ) ;
37
41
}
38
42
const onAdd = ( ) => {
39
-
40
- let data = { name :Name , usablewidth : usableWidth , usableheight : usableHeight , lock :false } ;
43
+
44
+ let data = { name : Name , width : usableWidth , height : usableHeight , lock : false } ;
41
45
setUsableSize ( [ ...usableSize , data ] ) ;
42
46
43
47
}
48
+ const onUpdate = ( ) =>
49
+ {
50
+ let index = parseInt ( SelectedSize ) ;
51
+ let option = [ ...usableSize ] ;
52
+ let data = { name : Name , width : usableWidth , height : usableHeight , lock : false } ;
53
+ option [ index ] = data ;
54
+ setUsableSize ( option ) ;
55
+ }
44
56
const onDelete = ( ) => {
45
- if ( SelectedSize )
46
- {
47
- console . log ( SelectedSize ) ;
57
+ if ( SelectedSize ) {
58
+ console . log ( SelectedSize ) ;
48
59
console . log ( usableSize [ SelectedSize ] ) ;
49
- if ( usableSize [ SelectedSize ] . lock === false )
50
- {
60
+ if ( usableSize [ SelectedSize ] . lock === false ) {
51
61
let data = [ ...usableSize ] ;
52
- data . splice ( SelectedSize , 1 ) ;
53
- setUsableSize ( data ) ;
62
+ data . splice ( SelectedSize , 1 ) ;
63
+ setUsableSize ( data ) ;
54
64
}
55
65
}
56
66
}
57
67
const onDuplicate = ( ) => {
68
+ if ( SelectedSize ) {
69
+ let data = [ ...usableSize ] ;
70
+ let elem = { ...data [ SelectedSize ] } ;
71
+ elem . name += " Copy" ;
72
+ elem . lock = false ;
73
+ data . push ( elem ) ;
74
+ setUsableSize ( data ) ;
58
75
76
+ }
59
77
}
60
78
61
79
return (
62
80
63
- < >
81
+ < div
82
+ tabIndex = { 0 }
83
+ onKeyUp = { ( e ) => {
84
+ e . stopPropagation ( ) ;
85
+ console . log ( e ) ;
86
+ if ( e . key === "Escape" )
87
+ onCancel ( )
88
+ else if ( e . key === 'Enter' )
89
+ onOk ( ) ;
90
+ } } >
64
91
< Modal
65
92
isOpen = { show }
66
93
contentLabel = ""
67
94
aria = { { hidden : false , label : ' ' } }
95
+
68
96
>
69
- < div className = 'MakeColumn100' >
97
+ < div className = 'MakeColumn100' >
70
98
< div >
71
99
< select
72
- onChange = { ( e ) => { setSelectedSize ( e . target . value ) } }
100
+ onChange = { ( e ) => {
101
+ console . log ( e ) ;
102
+ let index = parseInt ( e . target . value ) ;
103
+ setUsableWidth ( usableSize [ index ] . width ) ;
104
+ setUsableHeight ( usableSize [ index ] . height ) ;
105
+ console . log ( usableSize [ index ] ) ;
106
+ setName ( usableSize [ index ] . name ) ;
107
+ setSelectedSize ( index ) ;
108
+ } }
73
109
value = { SelectedSize }
74
110
id = "usablepaper"
75
111
name = "usablepaper"
76
112
className = 'select_param'
77
113
size = "6"
78
114
>
79
115
{ usableSize . map ( ( item , index ) => {
80
- console . log ( index ) ;
81
116
if ( SelectedSize === index )
82
- return ( < option aria-selected = { true } key = { item . name } value = { index } > { render_lock ( item . lock ) } { item . name } [{ item . usablewidth } mm x { item . usableheight } mm]</ option > ) ;
117
+ return ( < option aria-selected = { true } key = { item . name } value = { index } > { render_lock ( item . lock ) } { item . name } [{ item . width } mm x { item . height } mm]</ option > ) ;
83
118
else
84
- return ( < option aria-selected = { false } key = { item . name } value = { index } > { render_lock ( item . lock ) } { item . name } [{ item . usablewidth } mm x { item . usableheight } mm]</ option > ) ;
119
+ return ( < option aria-selected = { false } key = { item . name } value = { index } > { render_lock ( item . lock ) } { item . name } [{ item . width } mm x { item . height } mm]</ option > ) ;
85
120
} )
86
121
}
87
122
</ select >
88
123
</ div >
89
124
< div >
90
125
< div className = 'pure-form pure-form-aligned' >
91
126
< div className = 'content' >
92
- < div class = "alert alert-success alert-white rounded" >
127
+ < div class = "alert alert-danger alert-white rounded" >
93
128
blabla
94
129
< button type = "button" class = "close" data-dismiss = "alert" aria-hidden = "true" > ×</ button >
95
130
< div class = "icon" > < i class = "fa fa-check" > </ i > </ div >
96
131
</ div >
132
+ < div class = "rounded" >
133
+
134
+
135
+ < div class = "icon" > < i class = "fa fa-check" > </ i > </ div >
136
+ </ div >
97
137
</ div >
98
138
< div className = 'pure-control-group' >
99
139
< legend > A legend for size</ legend >
@@ -103,22 +143,24 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
103
143
</ label >
104
144
< input type = "text"
105
145
defaultValue = { Name }
146
+ value = { Name }
106
147
name = "myInputNameDiag"
107
148
id = "myInputNameDiag"
108
149
109
150
onChange = { ( e ) => {
110
151
//this.handleChangePaper('usablewidth', e.target.value);
111
- setName ( e . target . value ) ;
152
+ setName ( e . target . value ) ;
112
153
} }
113
154
style = { { width : "12em" } }
114
- /> < br />
155
+ /> < br />
115
156
< label for = 'myInputWUDiag' >
116
157
{ GetLocaleString ( "param.usable.diag.width" ) } :
117
158
</ label >
118
159
< input type = "number"
119
160
min = { 100 }
120
161
max = { 420 }
121
162
defaultValue = { usableWidth }
163
+ value = { usableWidth }
122
164
name = "myInputWUDiag"
123
165
id = "myInputWUDiag"
124
166
@@ -127,7 +169,7 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
127
169
setUsableWidth ( e . target . value ) ;
128
170
} }
129
171
style = { { width : "5em" } }
130
- /> < br />
172
+ /> < br />
131
173
132
174
133
175
@@ -139,13 +181,14 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
139
181
min = { 100 }
140
182
max = { 550 }
141
183
defaultValue = { usableHeight }
184
+ value = { usableHeight }
142
185
id = "myInputHUDiag"
143
186
name = "myInputHUDiag"
144
187
onChange = { ( e ) => {
145
188
setUsableHeight ( e . target . value ) ; //this.handleChangePaper('usableheight', e.target.value);
146
189
} }
147
190
style = { { width : "5em" } }
148
- /> < br />
191
+ /> < br />
149
192
</ fieldset >
150
193
151
194
< fieldset >
@@ -159,6 +202,11 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
159
202
>
160
203
Delete
161
204
</ button >
205
+ < button className = "pad-button pure-button"
206
+ onClick = { ( ) => { onUpdate ( ) } }
207
+ >
208
+ Update
209
+ </ button >
162
210
< button className = "pad-button pure-button"
163
211
onClick = { ( ) => { onDuplicate ( ) } }
164
212
>
@@ -185,7 +233,7 @@ const ModalUsablePrint = ({ show, handleOK, handleCancel, paperusablesize }) =>
185
233
</ div >
186
234
</ div >
187
235
</ Modal >
188
- </ >
236
+ </ div >
189
237
) ;
190
238
}
191
- export default ModalUsablePrint ;
239
+ export default ModalPrintSize ;
0 commit comments