ng-easycommerce 0.0.667-beta.2 → 0.0.667

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # version 0.0.667-beta.1 - 0.0.667-beta.2
1
+ # version 0.0.667
2
2
  - Se modifica `decidirFormEc.html` ya que el botón de pagar cargaba pero volvia a salir y permitia duplicar el pago en los pedidos con decidir.
3
3
  # version 0.0.666
4
4
  - `dataform-ec`: se modifica comprobacion para no permitir agregar direcciones a clientes con impuestos en direcciones.
@@ -253,8 +253,7 @@
253
253
  <div class="container-fluid mt-3">
254
254
  <div class="row">
255
255
  <div class="col-md-6 col-12">
256
- <!-- <h5><b>Decidir</b></h5> -->
257
- </div>
256
+ </div>
258
257
  <div class="col-md-6 col-12">
259
258
  <img src="../assets/images/cards-occasional.png" class="card-img-top" alt="...">
260
259
  </div>
@@ -387,10 +386,12 @@
387
386
  document.body.appendChild(iframe)
388
387
 
389
388
  window.onload = function () {
389
+
390
+ // --- FIX 1: VARIABLE DE CONTROL ---
391
+ let isSubmitting = false;
390
392
 
391
393
  let loadToken = document.querySelector('#loadToken');
392
394
  let loadTokenBtn = document.querySelector('#loadTokenBtn');
393
- let formSubmitted = false; // Bandera para evitar envíos duplicados
394
395
 
395
396
  const isLoad = (state) => {
396
397
  loadToken.style.display = !state && 'none' || 'block';
@@ -443,7 +444,7 @@
443
444
  data['subtotal'] = document.getElementById('total_con_interes').value
444
445
  data['dues'] = document.getElementById('tipo_interes').value;
445
446
  }
446
-
447
+
447
448
  }
448
449
 
449
450
  try {
@@ -455,7 +456,8 @@
455
456
  }
456
457
  }).then(res => res.json())
457
458
  .catch(error => {
458
- processNetworkError(error)
459
+ console.error('Error:', error)
460
+ processError(response)
459
461
  })
460
462
  .then(response => {
461
463
  console.log('Success:', response)
@@ -464,14 +466,14 @@
464
466
  if (response.status == 'approved' || response.status == 'partially_authorized') {
465
467
  processResponse(response)
466
468
  } else {
467
- processBackendError(response)
469
+ processError(response)
468
470
  }
469
471
  } else {
470
- processBackendError(response)
472
+ processError(response)
471
473
  }
472
474
  });
473
475
  } catch (error) {
474
- processNetworkError(error)
476
+ processError(response)
475
477
  }
476
478
  localStorage.removeItem('dataRedirect')
477
479
  localStorage.removeItem('dataDecidir')
@@ -482,7 +484,7 @@
482
484
  console.log('Respuesta: ', response)
483
485
  if (status != 200 && status != 201) {
484
486
  //Manejo de error: Ver Respuesta de Error
485
- processSdkError(response)
487
+ processError(response)
486
488
  } else {
487
489
  //Manejo de respuesta donde response = {token: "99ab0740-4ef9-4b38-bdf9-c4c963459b22"}
488
490
  sendToken(response)
@@ -491,46 +493,44 @@
491
493
 
492
494
  const sendForm = (event) => {
493
495
  event.preventDefault();
494
-
495
- // Evitar envíos duplicados
496
- if (formSubmitted) {
496
+
497
+ // --- FIX 2: VALIDACIÓN DE DOBLE SUBMIT ---
498
+ if(isSubmitting) {
499
+ console.log("Intento de doble submit bloqueado");
497
500
  return false;
498
501
  }
502
+
503
+ isSubmitting = true; // Bloqueamos nuevas peticiones
504
+ isLoad(true);
499
505
 
500
- formSubmitted = true;
501
- isLoad(true)
502
506
  console.log('Formulario: ', form)
503
507
  decidir.createToken(form, sdkResponseHandler);
504
508
  return false;
505
509
  }
506
510
 
507
- // Error del SDK de Decidir (antes de llegar al backend) - permite reintentar
508
- const processSdkError = (error) => {
509
- formSubmitted = false; // Permitir reintentar
510
- isLoad(false)
511
- localStorage.setItem('state', 'failure')
512
- }
513
-
514
- // Error de red (no llegó al backend) - permite reintentar
515
- const processNetworkError = (error) => {
516
- formSubmitted = false; // Permitir reintentar
511
+ const processError = (error) => {
512
+ console.log("ERROR ENVIO BACK ", error);
513
+
514
+ // --- FIX 3: LIBERAR BLOQUEO EN ERROR ---
517
515
  isLoad(false)
516
+ isSubmitting = false; // Permitimos intentar de nuevo
517
+
518
518
  localStorage.setItem('state', 'failure')
519
519
  }
520
520
 
521
- // Error del backend (la petición llegó pero fue rechazada) - NO permite reintentar
522
- const processBackendError = (error) => {
523
- // NO resetear formSubmitted - el pago ya se intentó procesar
524
- // Mantener el spinner visible para evitar doble click
525
- isLoad(true) // Mantener spinner visible
526
- localStorage.setItem('state', 'failure')
527
- }
528
-
529
- // Respuesta exitosa del backend - NO permite reintentar
530
521
  const processResponse = (response) => {
531
- // NO resetear formSubmitted ni mostrar el botón
532
- // Mantener el spinner visible
533
- isLoad(true) // Mantener spinner visible
522
+ console.log("ENVIO BACK ", response);
523
+
524
+ // --- FIX 4: NO CERRAR SPINNER EN EXITO ---
525
+ if (response.status == 'approved' || response.status == 'partially_authorized') {
526
+ // Mantenemos isLoad(true) y isSubmitting = true
527
+ // Esto evita que el usuario toque nada mientras la modal se cierra sola
528
+ } else {
529
+ // Si falla, liberamos
530
+ isLoad(false);
531
+ isSubmitting = false;
532
+ }
533
+
534
534
  localStorage.setItem('state', response.status == 'approved' ? 'success' : 'partially_authorized')
535
535
  }
536
536
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-easycommerce",
3
- "version": "0.0.667-beta.2",
3
+ "version": "0.0.667",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^9.0.0",
6
6
  "@angular/core": "^9.0.0",