@everymatrix/general-player-login-form 1.2.1 → 1.2.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@everymatrix/general-player-login-form",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "main": "dist/general-player-login-form.js",
5
5
  "svelte": "src/index.ts",
6
6
  "scripts": {
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "de8b2a024255bd2ed76c13501c5a6dc858263dcb"
39
+ "gitHead": "02dbae5b4d167acdb57c72905b756343a318870a"
40
40
  }
@@ -20,12 +20,11 @@
20
20
  export let simplepasswordvalidation:string = 'false';
21
21
  export let clientstyling:string = '';
22
22
  export let clientstylingurl:string = '';
23
- export let translationUrl:string = '';
23
+ export let translationurl:string = '';
24
24
 
25
25
  let playerId;
26
26
  let smsTokenId;
27
- let startSmsValidation = false;
28
- let smsTemplate: string = 'Please use this code {0} to activate your accout';
27
+ let smsTemplate: string = 'Please use this code {0} to activate your account';
29
28
  let smsSendApiFailed = false;
30
29
  let number;
31
30
  let mobileView:boolean = false;
@@ -55,6 +54,9 @@
55
54
 
56
55
  let customStylingContainer:HTMLElement;
57
56
  let displayNone:boolean = false;
57
+ let setTimer = +localStorage.getItem('smsTimer') || 0;
58
+ let currentTimer = Date.now() / 1000 - setTimer;
59
+ let startSmsValidation = localStorage.getItem('smsValidation') == 'true' && currentTimer < 60 ? true : false;
58
60
 
59
61
  let regexValidators = {
60
62
  user: /^(?!(?:.*\d){9})(?=(?:.*[a-zA-Z]){4})^[a-zA-Z\d]*$/,
@@ -65,7 +67,7 @@
65
67
  setupI18n({ withLocale: 'en', translations: {}});
66
68
 
67
69
  const setTranslationUrl = ():void => {
68
- let url:string = translationUrl;
70
+ let url:string = translationurl;
69
71
 
70
72
  fetch(url).then((res:any) => res.json())
71
73
  .then((res) => {
@@ -124,7 +126,7 @@
124
126
  }
125
127
 
126
128
  const submitLoginForm = (e):void => {
127
- e.preventDefault();
129
+ e?.preventDefault();
128
130
  doRecaptcha()
129
131
  .then((token:string) => {
130
132
  if (checkUserIdentifier(userValue) && checkUserPassword(userPassword)) {
@@ -134,7 +136,6 @@
134
136
  token: token
135
137
  };
136
138
  isLoading = true;
137
-
138
139
  window.postMessage({ type: "SubmitLoginForm", loginData: loginFormData }, window.location.href);
139
140
  }
140
141
  });
@@ -187,7 +188,10 @@
187
188
  number = e.data.number;
188
189
  startSmsValidation = e.data.startSmsValidation;
189
190
  sendSmsToken(number, playerId);
191
+ localStorage.setItem('smsValidation', 'true');
192
+ localStorage.setItem('playerData', JSON.stringify({playerid: playerId, number: number}));
190
193
  break;
194
+
191
195
  case 'SmsHasBeenValidated':
192
196
  submitLoginForm();
193
197
  break;
@@ -196,6 +200,7 @@
196
200
  }
197
201
 
198
202
  const sendSmsToken = async (number, playerId) => {
203
+ localStorage.setItem('smsTimer', JSON.stringify(Math.floor(Date.now() / 1000)));
199
204
  try {
200
205
  const res = await fetch(`${endpoint}/player/sms/token`,{
201
206
  method: 'POST',
@@ -214,7 +219,7 @@
214
219
 
215
220
  const data = await res.json();
216
221
 
217
- if(res.ok) {
222
+ if (res.ok ) {
218
223
  smsTokenId = data.id;
219
224
  let smsMaxValidations = data.maxValidationAttempts;
220
225
  smsSendApiFailed = false;
@@ -254,10 +259,9 @@
254
259
  });
255
260
  }
256
261
 
257
- onMount(async () => {
262
+ onMount(() => {
258
263
  window.addEventListener("message", messageHandler, false);
259
264
  window.postMessage({ type: "LoginRegisterModalActive" }, window.location.href);
260
-
261
265
  isOnNative = !!isNative(userAgent);
262
266
  waitingForCredentials = isOnNative;
263
267
 
@@ -298,7 +302,7 @@
298
302
  $: simplepasswordvalidation && verifyTypeOfPassword();
299
303
  $: clientstyling && customStylingContainer && setClientStyling();
300
304
  $: clientstylingurl && customStylingContainer && setClientStylingURL();
301
- $: translationUrl && setTranslationUrl();
305
+ $: translationurl && setTranslationUrl();
302
306
  </script>
303
307
 
304
308
  <svelte:head>
@@ -309,7 +313,7 @@
309
313
 
310
314
  <div class="g-recaptcha" data-sitekey="{captchakey}" />
311
315
 
312
- <div bind:this={customStylingContainer}>
316
+ <div class="PlayerLoginFormWrapper" bind:this={customStylingContainer}>
313
317
  {#if isLoading}
314
318
  <div class="ModalLoaderWrapper" part="ModalLoaderWrapper">
315
319
  <div class="ModalLoader" part="ModalLoader"></div>
@@ -382,6 +386,11 @@
382
386
  }
383
387
 
384
388
  .grecaptcha-badge { opacity:0;}
389
+
390
+ .PlayerLoginFormWrapper {
391
+ height: 100%;
392
+ }
393
+
385
394
  .FormContainer {
386
395
  display: inline-flex;
387
396
  width: 100%;
@@ -522,7 +531,7 @@
522
531
  .FormMobileContainer {
523
532
  height:100%;
524
533
  .FormLeftSide {
525
- padding: 40px 20px;
534
+ padding: 40px 20px 100%;
526
535
  }
527
536
  .SignInButton,
528
537
  .UserContainer input,
@@ -10,7 +10,7 @@ export const LoginForm = {
10
10
  loginPasswordError: 'Password must be 8-20 characters long and contain at least 1 uppercase letter, 1 number and 1 special character.',
11
11
  loginSimplePasswordError: 'Password must be 8-20 characters long.',
12
12
  loginButton: 'Login',
13
- loginForgotPassword: 'I forgot my password'
13
+ loginForgotPassword: 'I forgot my password',
14
14
  }
15
15
  },
16
16
  zh: {
@@ -24,7 +24,7 @@ export const LoginForm = {
24
24
  loginPasswordError: '密碼長度必須為 8-20 個字符,並且至少包含 1 個大寫字母、1 個數字和 1 個特殊字符。',
25
25
  loginSimplePasswordError: '密码长度必须为 8-20 个字符。',
26
26
  loginButton: '登入',
27
- loginForgotPassword: '我忘記了我的密碼'
27
+ loginForgotPassword: '我忘記了我的密碼',
28
28
  }
29
29
  },
30
30
  fr: {
@@ -38,7 +38,7 @@ export const LoginForm = {
38
38
  loginPasswordError: 'Le mot de passe doit comporter de 8 à 20 charactères et contenir au moins une lettre majuscule, un chiffre et un caractère spécial.',
39
39
  loginSimplePasswordError: 'Le mot de passe doit comporter entre 8 et 20 caractères.',
40
40
  loginButton: 'Se connecter ',
41
- loginForgotPassword: 'J\'ai oublié mon mot de passe'
41
+ loginForgotPassword: 'J\'ai oublié mon mot de passe',
42
42
  }
43
43
  },
44
44
  tr: {
@@ -52,7 +52,7 @@ export const LoginForm = {
52
52
  loginPasswordError: 'Şifre 8-20 karakter uzunluğunda olmalı ve en az 1 büyük harf, 1 rakam ve 1 özel karakter içermelidir.',
53
53
  loginSimplePasswordError: 'Şifre 8-20 karakter uzunluğunda olmalıdır.',
54
54
  loginButton: 'Giriş yapmak',
55
- loginForgotPassword: 'I forgot my password'
55
+ loginForgotPassword: 'I forgot my password',
56
56
  }
57
57
  },
58
58
  ro: {
@@ -66,7 +66,7 @@ export const LoginForm = {
66
66
  loginPasswordError: 'Parola trebuie sa aiba o lungime de 8-20 de caractere, sa contina cel putin o litera mare, o cifra si un caracter special.',
67
67
  loginSimplePasswordError: 'Parola trebuie să aibă 8-20 de caractere.',
68
68
  loginButton: 'Autentificare',
69
- loginForgotPassword: 'Mi-am uitat parola'
69
+ loginForgotPassword: 'Mi-am uitat parola',
70
70
  }
71
71
  },
72
72
  es: {
@@ -80,7 +80,7 @@ export const LoginForm = {
80
80
  loginPasswordError: 'La contraseña debe tener de 8 a 20 caracteres y contener al menos 1 letra mayúscula, 1 número y 1 carácter especial.',
81
81
  loginSimplePasswordError: 'La contraseña debe tener entre 8 y 20 caracteres.',
82
82
  loginButton: 'Iniciar sesión',
83
- loginForgotPassword: 'Olvidé mi contraseña'
83
+ loginForgotPassword: 'Olvidé mi contraseña',
84
84
  }
85
85
  },
86
86
  pt: {
@@ -94,7 +94,7 @@ export const LoginForm = {
94
94
  loginPasswordError: 'A senha deve ter de 8 a 20 caracteres e conter pelo menos 1 letra maiúscula, 1 número e 1 caractere especial.',
95
95
  loginSimplePasswordError: 'A senha deve ter de 8 a 20 caracteres.',
96
96
  loginButton: 'Entrar',
97
- loginForgotPassword: 'Esqueci a minha senha'
97
+ loginForgotPassword: 'Esqueci a minha senha',
98
98
  }
99
99
  },
100
100
  };