11export default class MsOrder {
2+ static hiddenClassName = 'ms-hidden'
3+
24 constructor ( minishop ) {
35 this . minishop = minishop
46
@@ -16,6 +18,8 @@ export default class MsOrder {
1618 this . paymentInput = 'input[name="payment"]'
1719 this . paymentInputUniquePrefix = '#payment_'
1820 this . deliveryInputUniquePrefix = '#delivery_'
21+ this . errorClassName = 'error'
22+ this . requiredClassName = 'required'
1923
2024 this . orderCost = document . querySelector ( '#ms2_order_cost' )
2125 this . cartCost = document . querySelector ( '#ms2_order_cart_cost' )
@@ -79,7 +83,7 @@ export default class MsOrder {
7983
8084 const checked = paymentInputs . filter ( el => el . checked && ( el . offsetWidth > 0 || el . offsetHeight > 0 ) )
8185 const visible = paymentInputs . filter ( el => ( el . offsetWidth > 0 || el . offsetHeight > 0 ) )
82- if ( ! checked . length ) {
86+ if ( ! checked . length && visible [ 0 ] ) {
8387 visible [ 0 ] . checked = true
8488 }
8589 }
@@ -112,16 +116,16 @@ export default class MsOrder {
112116 }
113117
114118 field . value = response . data [ key ] || ''
115- field . classList . remove ( 'error' )
116- field . closest ( this . inputParent ) . classList . remove ( 'error' )
119+ field . classList . remove ( this . errorClassName )
120+ field . closest ( this . inputParent ) . classList . remove ( this . errorClassName )
117121 }
118122
119123 this . callbacks . add . response . error = ( ) => {
120124 const field = this . order . querySelector ( `[name="${ key } "]` )
121125 if ( [ 'checkbox' , 'radio' ] . includes ( field . type ) ) {
122- field . closest ( this . inputParent ) . classList . add ( 'error' )
126+ field . closest ( this . inputParent ) . classList . add ( this . errorClassName )
123127 } else {
124- field . classList . add ( 'error' )
128+ field . classList . add ( this . errorClassName )
125129 }
126130 }
127131
@@ -195,8 +199,8 @@ export default class MsOrder {
195199
196200 if ( this . order . elements ) {
197201 Array . from ( this . order . elements ) . forEach ( el => {
198- el . classList . remove ( 'error' )
199- el . closest ( this . inputParent ) ?. classList . remove ( 'error' )
202+ el . classList . remove ( this . errorClassName )
203+ el . closest ( this . inputParent ) ?. classList . remove ( this . errorClassName )
200204 } )
201205 }
202206
@@ -206,9 +210,9 @@ export default class MsOrder {
206210 const field = this . order . querySelector ( `[name="${ key } "]` )
207211
208212 if ( [ 'checkbox' , 'radio' ] . includes ( field . type ) ) {
209- field . closest ( this . inputParent ) . classList . add ( 'error' )
213+ field . closest ( this . inputParent ) . classList . add ( this . errorClassName )
210214 } else {
211- field . classList . add ( 'error' )
215+ field . classList . add ( this . errorClassName )
212216 }
213217 }
214218 }
@@ -223,22 +227,22 @@ export default class MsOrder {
223227
224228 if ( this . order . elements . length ) {
225229 Array . from ( this . order . elements ) . forEach ( el => {
226- el . classList . remove ( 'required' )
227- el . closest ( this . inputParent ) ?. classList . remove ( 'required' )
230+ el . classList . remove ( this . requiredClassName )
231+ el . closest ( this . inputParent ) ?. classList . remove ( this . requiredClassName )
228232 } )
229233 }
230234
231235 for ( const name of requires ) {
232- this . order . elements [ name ] ?. classList . add ( 'required' )
233- this . order . elements [ name ] ?. closest ( this . inputParent ) ?. classList . add ( 'required' )
236+ this . order . elements [ name ] ?. classList . add ( this . requiredClassName )
237+ this . order . elements [ name ] ?. closest ( this . inputParent ) ?. classList . add ( this . requiredClassName )
234238 }
235239 }
236240
237241 this . callbacks . getrequired . response . error = ( ) => {
238242 if ( this . order . elements . length ) {
239243 Array . from ( this . order . elements ) . forEach ( el => {
240- el . classList . remove ( 'required' )
241- el . closest ( this . inputParent ) ?. classList . remove ( 'required' )
244+ el . classList . remove ( this . requiredClassName )
245+ el . closest ( this . inputParent ) ?. classList . remove ( this . requiredClassName )
242246 } )
243247 }
244248 }
@@ -250,11 +254,13 @@ export default class MsOrder {
250254 }
251255
252256 static hide ( node ) {
253- node . classList . add ( 'ms-hidden' )
257+ if ( ! node ) return
258+ node . classList . add ( MsOrder . hiddenClassName )
254259 node . checked = false
255260 }
256261
257262 static show ( node ) {
258- node . classList . remove ( 'ms-hidden' )
263+ if ( ! node ) return
264+ node . classList . remove ( MsOrder . hiddenClassName )
259265 }
260266}
0 commit comments