namirasoft-account-react 1.4.115 → 1.4.117

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/dist/App.js CHANGED
@@ -10,9 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import { NSALayout, NSASectionTabs, NSAVerificationPage } from "./main";
12
12
  export function App(props) {
13
- return (_jsx(_Fragment, { children: _jsxs(NSALayout, Object.assign({}, props, { scope: "Namirasoft Job Arranger Console", logo: "", background: "", header: "", notifications: [], children: [_jsx(NSASectionTabs, {}), _jsx(NSAVerificationPage, Object.assign({}, props, { contact_type: "Email", contact_value_name: "Email", getContactValue: () => "myname@example.com", onVerify: (code) => __awaiter(this, void 0, void 0, function* () {
13
+ return (_jsx(_Fragment, { children: _jsxs(NSALayout, Object.assign({}, props, { scope: "Namirasoft Job Arranger Console", logo: "", background: "", header: "", notifications: [], children: [_jsx(NSASectionTabs, {}), _jsx(NSAVerificationPage, Object.assign({}, props, { contact_type: "Email", contact_value_name: "Email", getContactValue: () => "myname@example.com", onRequest: () => __awaiter(this, void 0, void 0, function* () { }), onVerify: (code) => __awaiter(this, void 0, void 0, function* () {
14
14
  console.log(code);
15
- }), onSend: () => __awaiter(this, void 0, void 0, function* () { }) }))] })) }));
15
+ }), onFinished: () => { } }))] })) }));
16
16
  }
17
17
  ;
18
18
  //# sourceMappingURL=App.js.map
package/dist/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAMxE,MAAM,UAAU,GAAG,CAAC,KAAe;IAElC,OAAO,CACN,4BACC,MAAC,SAAS,oBAAK,KAAK,IACnB,KAAK,EAAE,iCAAiC,EACxC,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,EAAE,EACd,MAAM,EAAE,EAAE,EACV,aAAa,EAAE,EAAE,aAEjB,KAAC,cAAc,KAAG,EAClB,KAAC,mBAAmB,oBACf,KAAK,IACT,YAAY,EAAC,OAAO,EACpB,kBAAkB,EAAC,OAAO,EAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAC3C,QAAQ,EAAE,CAAO,IAAI,EAAE,EAAE;wBAExB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAClB,CAAC,CAAA,EACD,MAAM,EAAE,GAAS,EAAE,gDAAG,CAAC,CAAA,IACtB,KACU,GACX,CACH,CAAC;AACH,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAMxE,MAAM,UAAU,GAAG,CAAC,KAAe;IAElC,OAAO,CACN,4BACC,MAAC,SAAS,oBAAK,KAAK,IACnB,KAAK,EAAE,iCAAiC,EACxC,IAAI,EAAE,EAAE,EACR,UAAU,EAAE,EAAE,EACd,MAAM,EAAE,EAAE,EACV,aAAa,EAAE,EAAE,aAEjB,KAAC,cAAc,KAAG,EAClB,KAAC,mBAAmB,oBACf,KAAK,IACT,YAAY,EAAC,OAAO,EACpB,kBAAkB,EAAC,OAAO,EAC1B,eAAe,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAC3C,SAAS,EAAE,GAAS,EAAE,gDAAG,CAAC,CAAA,EAC1B,QAAQ,EAAE,CAAO,IAAI,EAAE,EAAE;wBAExB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAClB,CAAC,CAAA,EACD,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,IACpB,KACU,GACX,CACH,CAAC;AACH,CAAC;AAAA,CAAC"}
@@ -1,15 +1,17 @@
1
1
  import { IBaseComponentProps, INSRouterProps } from 'namirasoft-site-react';
2
2
  import { ReactNode } from "react";
3
- export interface INSAVerificationPageProps extends IBaseComponentProps, INSRouterProps {
3
+ import { INSARouterProps } from '../INSARouterProps';
4
+ export interface INSAVerificationPageProps extends IBaseComponentProps, INSRouterProps, INSARouterProps {
4
5
  contact_type: string;
5
6
  contact_value_name: string;
6
7
  getContactValue: () => string;
7
- onSend: () => Promise<void>;
8
+ onRequest: (address: string) => Promise<void>;
8
9
  onVerify: (code: string) => Promise<void>;
10
+ onFinished: () => void;
9
11
  children?: ReactNode;
10
12
  }
11
13
  export interface NSAVerificationPageState {
12
- values: string;
14
+ code: string;
13
15
  isSendCode: boolean;
14
16
  }
15
17
  export declare function NSAVerificationPage(props: INSAVerificationPageProps): import("react/jsx-runtime").JSX.Element;
@@ -10,28 +10,34 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
11
  import Styles from './NSAVerificationPage.module.css';
12
12
  import { NSABoxOTP } from '../components/NSABoxOTP';
13
- import { useState } from "react";
13
+ import { useEffect, useState } from "react";
14
14
  import { NSSection, NSSpace, NSSpaceSizeType, NSButtonBlue } from 'namirasoft-site-react';
15
15
  export function NSAVerificationPage(props) {
16
- var _a;
16
+ var _a, _b;
17
+ let code = (_a = props.url.getQuery("code")) !== null && _a !== void 0 ? _a : "";
18
+ useEffect(() => {
19
+ if (code)
20
+ onVerify();
21
+ }, []);
17
22
  const [state, setState] = useState({
18
- values: "",
19
- isSendCode: false
23
+ code,
24
+ isSendCode: code.length > 0
20
25
  });
21
26
  function onChanged(event, index) {
22
27
  const newValue = event.target.value;
23
- setState(prevState => (Object.assign(Object.assign({}, prevState), { values: state.values + newValue })));
28
+ setState(prevState => (Object.assign(Object.assign({}, prevState), { code: state.code + newValue })));
24
29
  if (/^\d?$/.test(event.target.value)) {
25
- const updatedValues = [...state.values];
30
+ const updatedValues = [...state.code];
26
31
  updatedValues[index] = newValue;
27
- setState(prevState => (Object.assign(Object.assign({}, prevState), { values: updatedValues.join("") })));
32
+ setState(prevState => (Object.assign(Object.assign({}, prevState), { code: updatedValues.join("") })));
28
33
  }
29
34
  }
30
- function onSend() {
35
+ function onRequest() {
31
36
  return __awaiter(this, void 0, void 0, function* () {
32
37
  try {
33
- yield props.onSend();
38
+ yield props.onRequest(props.getContactValue());
34
39
  setState(prevState => (Object.assign(Object.assign({}, prevState), { isSendCode: true })));
40
+ props.notifier.onSuccess(`Verification code has been sent successfully.`);
35
41
  }
36
42
  catch (error) {
37
43
  props.notifier.onError(error);
@@ -41,16 +47,19 @@ export function NSAVerificationPage(props) {
41
47
  function onVerify() {
42
48
  return __awaiter(this, void 0, void 0, function* () {
43
49
  try {
44
- yield props.onVerify(state.values);
50
+ yield props.onVerify(state.code);
51
+ props.notifier.onSuccess("Verification has been successfully done.");
52
+ props.onFinished();
45
53
  }
46
54
  catch (error) {
47
55
  props.notifier.onError(error);
48
56
  }
49
57
  });
50
58
  }
51
- return (_jsx(_Fragment, { children: _jsxs(NSSection, { center_items: true, children: [_jsxs("div", { className: `${Styles.nsa_verification_container} ${(_a = props.classList) === null || _a === void 0 ? void 0 : _a.join(" ")}`, style: props.style, children: [_jsx("img", { src: "https://static.namirasoft.com/image/concept/verification/purple.png", alt: 'verification vector', className: Styles.nsa_verification_vector }), _jsxs("div", { className: 'm-0', children: [_jsxs("p", { className: 'm-2', children: ["Type: ", props.contact_type] }), props.children && !state.isSendCode ? props.children : _jsxs("p", { className: 'm-2', children: [props.contact_value_name, ": ", props.getContactValue()] })] }), state.isSendCode ?
59
+ return (_jsx(_Fragment, { children: _jsxs(NSSection, { center_items: true, children: [_jsxs("div", { className: `${Styles.nsa_verification_container} ${(_b = props.classList) === null || _b === void 0 ? void 0 : _b.join(" ")}`, style: props.style, children: [_jsx("img", { src: "https://static.namirasoft.com/image/concept/verification/purple.png", alt: 'verification vector', className: Styles.nsa_verification_vector }), _jsxs("div", { className: 'm-0', children: [_jsxs("p", { className: 'm-2', children: ["Type: ", props.contact_type] }), (props.children && !state.isSendCode) &&
60
+ _jsxs("p", { className: 'm-2', children: [props.contact_value_name, ": ", props.getContactValue()] }), _jsx("div", { style: { display: props.children && !state.isSendCode ? "none" : undefined }, children: props.children })] }), state.isSendCode ?
52
61
  _jsxs(_Fragment, { children: [_jsxs("p", { children: ["Please enter code sent to ", props.getContactValue()] }), _jsx(NSABoxOTP, { onChanged: onChanged })] }) :
53
- _jsx(_Fragment, { children: _jsx(NSButtonBlue, { onClick: onSend, title: 'Send Code' }) })] }), _jsx(NSSpace, { size: NSSpaceSizeType.NORMAL }), state.isSendCode &&
62
+ _jsx(_Fragment, { children: _jsx(NSButtonBlue, { onClick: onRequest, title: 'Send Code' }) })] }), _jsx(NSSpace, { size: NSSpaceSizeType.NORMAL }), state.isSendCode &&
54
63
  _jsxs(_Fragment, { children: [_jsx(NSButtonBlue, { title: "Verify", onClick: () => onVerify() }), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), _jsx("button", { onClick: () => {
55
64
  setState(prevState => (Object.assign(Object.assign({}, prevState), { isSendCode: false })));
56
65
  }, className: Styles.nsa_resend_button, children: "Resend Code" })] })] }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"NSAVerificationPage.js","sourceRoot":"","sources":["../../src/pages/NSAVerificationPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NSAVerificationPage.js","sourceRoot":"","sources":["../../src/pages/NSAVerificationPage.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.115",
11
+ "version": "1.4.117",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
package/src/App.tsx CHANGED
@@ -22,11 +22,12 @@ export function App(props: AppProps)
22
22
  contact_type="Email"
23
23
  contact_value_name="Email"
24
24
  getContactValue={() => "myname@example.com"}
25
+ onRequest={async () => { }}
25
26
  onVerify={async (code) =>
26
27
  {
27
28
  console.log(code)
28
29
  }}
29
- onSend={async () => { }}
30
+ onFinished={() => { }}
30
31
  />
31
32
  </NSALayout >
32
33
  </>
@@ -1,50 +1,60 @@
1
1
  import Styles from './NSAVerificationPage.module.css';
2
2
  import { IBaseComponentProps, INSRouterProps } from 'namirasoft-site-react';
3
3
  import { NSABoxOTP } from '../components/NSABoxOTP';
4
- import React, { ReactNode, useState } from "react";
4
+ import React, { ReactNode, useEffect, useState } from "react";
5
5
  import { NSSection, NSSpace, NSSpaceSizeType, NSButtonBlue } from 'namirasoft-site-react';
6
+ import { INSARouterProps } from '../INSARouterProps';
6
7
 
7
- export interface INSAVerificationPageProps extends IBaseComponentProps, INSRouterProps
8
+ export interface INSAVerificationPageProps extends IBaseComponentProps, INSRouterProps, INSARouterProps
8
9
  {
9
10
  contact_type: string;
10
11
  contact_value_name: string;
11
12
  getContactValue: () => string;
12
- onSend: () => Promise<void>;
13
+ onRequest: (address: string) => Promise<void>;
13
14
  onVerify: (code: string) => Promise<void>;
15
+ onFinished: () => void;
14
16
  children?: ReactNode;
15
17
  }
16
18
 
17
19
  export interface NSAVerificationPageState
18
20
  {
19
- values: string;
21
+ code: string;
20
22
  isSendCode: boolean;
21
23
  }
22
24
 
23
25
  export function NSAVerificationPage(props: INSAVerificationPageProps)
24
26
  {
27
+ let code = props.url.getQuery("code") ?? "";
28
+ useEffect(() =>
29
+ {
30
+ if (code)
31
+ onVerify();
32
+ }, []);
33
+
25
34
  const [state, setState] = useState<NSAVerificationPageState>({
26
- values: "",
27
- isSendCode: false
35
+ code,
36
+ isSendCode: code.length > 0
28
37
  });
29
38
 
30
39
  function onChanged(event: React.ChangeEvent<HTMLInputElement>, index: number): void
31
40
  {
32
41
  const newValue = event.target.value;
33
- setState(prevState => ({ ...prevState, values: state.values + newValue }));
42
+ setState(prevState => ({ ...prevState, code: state.code + newValue }));
34
43
  if (/^\d?$/.test(event.target.value))
35
44
  {
36
- const updatedValues = [...state.values];
45
+ const updatedValues = [...state.code];
37
46
  updatedValues[index] = newValue;
38
- setState(prevState => ({ ...prevState, values: updatedValues.join("") }))
47
+ setState(prevState => ({ ...prevState, code: updatedValues.join("") }))
39
48
  }
40
49
  }
41
50
 
42
- async function onSend()
51
+ async function onRequest()
43
52
  {
44
53
  try
45
54
  {
46
- await props.onSend();
55
+ await props.onRequest(props.getContactValue());
47
56
  setState(prevState => ({ ...prevState, isSendCode: true }))
57
+ props.notifier.onSuccess(`Verification code has been sent successfully.`);
48
58
  } catch (error)
49
59
  {
50
60
  props.notifier.onError(error as Error);
@@ -55,7 +65,9 @@ export function NSAVerificationPage(props: INSAVerificationPageProps)
55
65
  {
56
66
  try
57
67
  {
58
- await props.onVerify(state.values);
68
+ await props.onVerify(state.code);
69
+ props.notifier.onSuccess("Verification has been successfully done.");
70
+ props.onFinished();
59
71
  } catch (error)
60
72
  {
61
73
  props.notifier.onError(error as Error);
@@ -77,8 +89,12 @@ export function NSAVerificationPage(props: INSAVerificationPageProps)
77
89
  <div className='m-0'>
78
90
  <p className='m-2'>Type: {props.contact_type}</p>
79
91
  {
80
- props.children && !state.isSendCode ? props.children : <p className='m-2'>{props.contact_value_name}: {props.getContactValue()}</p>
92
+ (props.children && !state.isSendCode) &&
93
+ <p className='m-2'>{props.contact_value_name}: {props.getContactValue()}</p>
81
94
  }
95
+ <div style={{ display: props.children && !state.isSendCode ? "none" : undefined }}>
96
+ {props.children}
97
+ </div >
82
98
  </div>
83
99
  {
84
100
  state.isSendCode ?
@@ -87,7 +103,7 @@ export function NSAVerificationPage(props: INSAVerificationPageProps)
87
103
  <NSABoxOTP onChanged={onChanged} />
88
104
  </> :
89
105
  <>
90
- <NSButtonBlue onClick={onSend} title='Send Code' />
106
+ <NSButtonBlue onClick={onRequest} title='Send Code' />
91
107
  </>
92
108
  }
93
109
  </div>