@everymatrix/cashier-method-details 1.24.4 → 1.24.6

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/cashier-method-details",
3
- "version": "1.24.4",
3
+ "version": "1.24.6",
4
4
  "main": "index.js",
5
5
  "svelte": "src/index.ts",
6
6
  "scripts": {
@@ -35,5 +35,5 @@
35
35
  "publishConfig": {
36
36
  "access": "public"
37
37
  },
38
- "gitHead": "6b5a6d6584217df74f6dfeed6858faa39a7f971d"
38
+ "gitHead": "83c764a2fd7fd527c06d72f0a539fde3c531bd49"
39
39
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  <script lang="ts">
4
4
  import { onMount } from "svelte";
5
+ import { isMobile } from 'rvhelper';
5
6
  import { _, addNewMessages, setupI18n, setLocale } from './i18n';
6
7
  import { TRANSLATIONS } from './translations';
7
8
 
@@ -143,6 +144,10 @@
143
144
  let qrCodeScriptSrc: string = 'https://cdn.rawgit.com/davidshimjs/qrcodejs/gh-pages/qrcode.min.js';
144
145
  let blankPageTarget: string = '_blank';
145
146
  let externalLink: string = '';
147
+ let mobileView:boolean = false;
148
+ let userAgent:string = window.navigator.userAgent;
149
+ let mediaQuery = window.matchMedia('(max-width: 750px)');
150
+ let innerWidth: number;
146
151
 
147
152
  $: endpoint && session && selectedpaymentmethodname && currency && getPaymentDetails();
148
153
  $: clientstyling && customStylingContainer && setClientStyling();
@@ -150,7 +155,8 @@
150
155
  $: lang && setActiveLanguage();
151
156
  $: lang && translationurl && setTranslationUrl();
152
157
  $: selectedpaymentmethodname && qrCodeContainer.length && generateQr();
153
-
158
+ $: innerWidth && onWindowResize();
159
+ $: mobileView.toString() && hideMethodsList()
154
160
  const generateQr = () => {
155
161
  qrCodeContainer.forEach(elem => {
156
162
  if (elem && elem.innerText) {
@@ -206,6 +212,7 @@
206
212
  selectedPaymentMethod = data.PaymentMethod;
207
213
  fields = selectedPaymentMethod.Fields && selectedPaymentMethod.Fields.map(field => new PaymentMethodDetails(field));
208
214
  prepareFields = {};
215
+ hideMethodsList();
209
216
  })
210
217
  }
211
218
 
@@ -231,6 +238,10 @@
231
238
  });
232
239
  }
233
240
 
241
+ const onWindowResize = () => {
242
+ mobileView = isMobile(userAgent) || mediaQuery.matches
243
+ }
244
+
234
245
  onMount(() => {
235
246
  window.addEventListener('closeModal', closeModal, false);
236
247
  window.addEventListener('confirmModal', confirmTxn, false);
@@ -244,7 +255,6 @@
244
255
  window.removeEventListener('closeIframe', closeIframe);
245
256
  window.removeEventListener('notificationButtonClick', retryRedirect);
246
257
  }
247
-
248
258
  });
249
259
 
250
260
  const closeAllLookups = (e) => {
@@ -289,6 +299,33 @@
289
299
  showConfirmModal = true;
290
300
  })
291
301
  }
302
+
303
+ const backToMethodList = () => {
304
+ dispatchEvent(new CustomEvent('backToMethodList', {
305
+ bubbles: true,
306
+ cancelable: true,
307
+ composed: true
308
+ }));
309
+ hidePaymentDetails()
310
+ }
311
+
312
+ const hidePaymentDetails = () => {
313
+ dispatchEvent(new CustomEvent('hidePaymentDetails', {
314
+ detail: { hideMethodDetails: mobileView },
315
+ bubbles: true,
316
+ cancelable: true,
317
+ composed: true
318
+ }));
319
+ }
320
+
321
+ const hideMethodsList = () => {
322
+ dispatchEvent(new CustomEvent('hideMethodsList', {
323
+ detail: { hideMethodsList: mobileView },
324
+ bubbles: true,
325
+ cancelable: true,
326
+ composed: true
327
+ }));
328
+ }
292
329
  const closeIframe = () => {
293
330
  redirectUrl = null;
294
331
  }
@@ -341,10 +378,11 @@
341
378
  }
342
379
 
343
380
  </script>
381
+ <svelte:window bind:innerWidth={innerWidth} />
344
382
  <svelte:head>
345
383
  <script src={qrCodeScriptSrc}></script>
346
384
  </svelte:head>
347
- <div class="CashierMethodDetails">
385
+ <div class="CashierMethodDetails" bind:this={customStylingContainer}>
348
386
  {#if isTranslationLoaded && selectedPaymentMethod.Name}
349
387
  <div class="MethodsDetails">
350
388
  <form on:submit|preventDefault={prepareTxn}>
@@ -356,6 +394,9 @@
356
394
  <div class="SelectedLogoDescription">
357
395
  {selectedPaymentMethod.Label}
358
396
  </div>
397
+ {#if mobileView}
398
+ <div on:click={() => backToMethodList()} class="ChangePaymeth">{$_('change')}</div>
399
+ {/if}
359
400
  </div>
360
401
  {#if !selectedPaymentMethod.HideAmountField}
361
402
  <div class="Amount">
@@ -530,6 +571,13 @@
530
571
  max-width: 56px;
531
572
  }
532
573
  }
574
+ .ChangePaymeth {
575
+ margin-left: auto;
576
+ cursor: pointer;
577
+ color: var(--emw--color-black, #111);
578
+ font-size: var(--emw--font-size-small, 14px);
579
+ text-decoration-line: underline;
580
+ }
533
581
  }
534
582
  .RedirectionNotification {
535
583
  height: 100%;
@@ -13,6 +13,7 @@ export const TRANSLATIONS = {
13
13
  "processingButton": "Processing...",
14
14
  "generalMin": "Min",
15
15
  "generalMax": "Max",
16
- "amountPlaceholder": "0.00"
16
+ "amountPlaceholder": "0.00",
17
+ "change": "Change"
17
18
  },
18
19
  };