namirasoft-account-react 1.3.0 → 1.3.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.
@@ -1,8 +1,10 @@
1
- import { IRouterStateChanger } from "./IRouterStateChanger";
1
+ /// <reference types="react" />
2
+ import { IRouterState } from "./IRouterState";
2
3
  export declare class Messenger {
3
4
  static Counter: number;
4
- private component;
5
- constructor(component: IRouterStateChanger);
5
+ private state;
6
+ private setState;
7
+ constructor(state: IRouterState | undefined, setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>);
6
8
  private notify;
7
9
  onInformation(text: string): void;
8
10
  onSuccess(text: string): void;
package/dist/Messenger.js CHANGED
@@ -7,8 +7,9 @@ exports.Messenger = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const NotificationType_1 = require("./NotificationType");
9
9
  class Messenger {
10
- constructor(component) {
11
- this.component = component;
10
+ constructor(state, setState) {
11
+ this.state = state;
12
+ this.setState = setState;
12
13
  this.notify = this.notify.bind(this);
13
14
  this.onInformation = this.onInformation.bind(this);
14
15
  this.onSuccess = this.onSuccess.bind(this);
@@ -17,12 +18,14 @@ class Messenger {
17
18
  this.delNotification = this.delNotification.bind(this);
18
19
  }
19
20
  notify(message) {
20
- let state = this.component.getState();
21
+ let state = this.state;
22
+ if (!state)
23
+ state = {};
21
24
  let id = Messenger.Counter++;
22
25
  if (!state.notifications)
23
26
  state.notifications = [];
24
27
  state.notifications[id] = message;
25
- this.component.setState(state);
28
+ this.setState(state);
26
29
  setTimeout(() => {
27
30
  this.delNotification(id);
28
31
  }, 5000);
@@ -51,10 +54,12 @@ class Messenger {
51
54
  this.notify({ text, type: NotificationType_1.NotificationType.Error, color: "red" });
52
55
  }
53
56
  delNotification(id) {
54
- let state = this.component.getState();
57
+ let state = this.state;
58
+ if (!state)
59
+ state = {};
55
60
  if (state.notifications)
56
61
  delete state.notifications[id];
57
- this.component.setState(state);
62
+ this.setState(state);
58
63
  }
59
64
  }
60
65
  exports.Messenger = Messenger;
@@ -1 +1 @@
1
- {"version":3,"file":"Messenger.js","sourceRoot":"","sources":["../src/Messenger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Messenger.js","sourceRoot":"","sources":["../src/Messenger.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { ReactNode } from "react";
2
2
  import { ParsedNameValue } from "namirasoft-core";
3
- import { IRouterStateChanger } from "./IRouterStateChanger";
4
3
  import { IRouterMaker } from "./IRouterMaker";
4
+ import { IRouterState } from "./IRouterState";
5
5
  export default class RouterMaker {
6
+ private state;
7
+ private setState;
6
8
  private component;
7
- constructor(component: IRouterStateChanger & IRouterMaker);
9
+ constructor(state: IRouterState | undefined, setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>, component: IRouterMaker);
8
10
  private init;
9
11
  getQuery(name: string): string;
10
12
  getLink(sub: string, customQuery: {
@@ -13,6 +15,6 @@ export default class RouterMaker {
13
15
  redirect(sub: string, customQuery: {
14
16
  [name: string]: ParsedNameValue;
15
17
  }): void;
16
- onComponentDidMount(): void;
18
+ onUseEffect(): void;
17
19
  onRender(): ReactNode;
18
20
  }
@@ -7,20 +7,23 @@ const query_string_1 = __importDefault(require("query-string"));
7
7
  const namirasoft_core_1 = require("namirasoft-core");
8
8
  const Messenger_1 = require("./Messenger");
9
9
  const namirasoft_account_1 = require("namirasoft-account");
10
+ const react_router_dom_1 = require("react-router-dom");
10
11
  const axios_1 = __importDefault(require("axios"));
11
12
  class RouterMaker {
12
- constructor(component) {
13
+ constructor(state, setState, component) {
14
+ this.state = state;
15
+ this.setState = setState;
13
16
  this.component = component;
14
17
  this.init = this.init.bind(this);
15
18
  this.getQuery = this.getQuery.bind(this);
16
19
  this.getLink = this.getLink.bind(this);
17
20
  this.redirect = this.redirect.bind(this);
18
- this.onComponentDidMount = this.onComponentDidMount.bind(this);
21
+ this.onUseEffect = this.onUseEffect.bind(this);
19
22
  this.onRender = this.onRender.bind(this);
20
23
  }
21
24
  init() {
22
- var _a;
23
- let messenger = new Messenger_1.Messenger(this.component);
25
+ var _a, _b;
26
+ let messenger = new Messenger_1.Messenger(this.state, this.setState);
24
27
  let qStorage = this.getQuery("location");
25
28
  let qAPI = this.getQuery("api");
26
29
  let qToken = this.getQuery("token");
@@ -32,7 +35,7 @@ class RouterMaker {
32
35
  storage = new namirasoft_core_1.IStorageMemory();
33
36
  else
34
37
  storage = new namirasoft_core_1.IStorageLocal();
35
- let token_manager = new namirasoft_account_1.TokenManager(storage, () => this.component.setState({}));
38
+ let token_manager = new namirasoft_account_1.TokenManager(storage, () => this.setState({}));
36
39
  if (qToken)
37
40
  token_manager.setValue(qToken, true);
38
41
  let server = new namirasoft_account_1.NamirasoftAccountServer(token_manager, (error) => {
@@ -60,10 +63,11 @@ class RouterMaker {
60
63
  };
61
64
  let inited = true;
62
65
  if (qToken)
63
- inited = (_a = this.component.getState().inited) !== null && _a !== void 0 ? _a : false;
66
+ inited = (_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.inited) !== null && _b !== void 0 ? _b : false;
64
67
  return { props, inited };
65
68
  }
66
69
  getQuery(name) {
70
+ const location = (0, react_router_dom_1.useLocation)();
67
71
  let query = query_string_1.default.parse(location.search);
68
72
  let item = query[name];
69
73
  return new namirasoft_core_1.ObjectService(item).getString();
@@ -71,26 +75,29 @@ class RouterMaker {
71
75
  getLink(sub, customQuery) {
72
76
  if (!customQuery)
73
77
  customQuery = {};
78
+ const location = (0, react_router_dom_1.useLocation)();
74
79
  let query = query_string_1.default.parse(location.search);
75
80
  let final = Object.assign(Object.assign({}, query), customQuery);
76
81
  return namirasoft_core_1.URLOperation.getLink("", sub, final);
77
82
  }
78
83
  redirect(sub, customQuery) {
79
- console.log({ sub, customQuery });
84
+ const navigate = (0, react_router_dom_1.useNavigate)();
85
+ let ans = this.getLink(sub, customQuery);
86
+ navigate(ans);
80
87
  }
81
- onComponentDidMount() {
88
+ onUseEffect() {
82
89
  let { inited, props } = this.init();
83
- this.component.setState({ notifications: [], inited });
90
+ this.setState({ notifications: [], inited });
84
91
  let token = this.getQuery("token");
85
92
  if (token) {
86
93
  if (!props.account.token_manager.getUserData(u => u.id, "")) {
87
94
  props.account.server.session.Current()
88
95
  .then(response => {
89
96
  props.account.token_manager.set(response, false);
90
- this.component.setState({ inited: true });
97
+ this.setState({ inited: true });
91
98
  })
92
99
  .catch(() => {
93
- this.component.setState({ inited: true });
100
+ this.setState({ inited: true });
94
101
  });
95
102
  }
96
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RouterMaker.js","sourceRoot":"","sources":["../src/RouterMaker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouterMaker.js","sourceRoot":"","sources":["../src/RouterMaker.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from "./IAccountProps";
2
2
  export * from "./IRouterMaker";
3
3
  export * from "./IRouterState";
4
- export * from "./IRouterStateChanger";
5
4
  export * from "./Messenger";
6
5
  export * from "./Notification";
7
6
  export * from "./NotificationType";
package/dist/index.js CHANGED
@@ -21,7 +21,6 @@ exports.RouterMaker = void 0;
21
21
  __exportStar(require("./IAccountProps"), exports);
22
22
  __exportStar(require("./IRouterMaker"), exports);
23
23
  __exportStar(require("./IRouterState"), exports);
24
- __exportStar(require("./IRouterStateChanger"), exports);
25
24
  __exportStar(require("./Messenger"), exports);
26
25
  __exportStar(require("./Notification"), exports);
27
26
  __exportStar(require("./NotificationType"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,wDAAsC;AACtC,8CAA4B;AAC5B,iDAA+B;AAC/B,qDAAmC;AACnC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,8CAA4B;AAC5B,iDAA+B;AAC/B,qDAAmC;AACnC,6CAAuD;AAA9C,2HAAA,OAAO,OAAe"}
package/package.json CHANGED
@@ -8,16 +8,18 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.3.0",
11
+ "version": "1.3.2",
12
12
  "main": "./dist/index.js",
13
13
  "types": "./dist/index.d.ts",
14
14
  "author": "Amir Abolhasani",
15
15
  "license": "MIT",
16
- "scripts": {},
16
+ "scripts": {
17
+ "build": ""
18
+ },
17
19
  "dependencies": {
18
- "@types/react": "^18.2.66",
19
- "namirasoft-account": "^1.3.0",
20
- "namirasoft-core": "^1.3.0",
20
+ "@types/react": "^18.2.70",
21
+ "namirasoft-account": "^1.3.7",
22
+ "namirasoft-core": "^1.3.11",
21
23
  "query-string": "^9.0.0",
22
24
  "react": "^18.2.0",
23
25
  "react-router-dom": "^6.22.3",
package/src/Messenger.ts CHANGED
@@ -1,15 +1,17 @@
1
1
  import axios from "axios";
2
- import { IRouterStateChanger } from "./IRouterStateChanger";
3
2
  import { Notification } from "./Notification";
4
3
  import { NotificationType } from "./NotificationType";
4
+ import { IRouterState } from "./IRouterState";
5
5
 
6
6
  export class Messenger
7
7
  {
8
8
  static Counter: number = 1;
9
- private component: IRouterStateChanger;
10
- constructor(component: IRouterStateChanger)
9
+ private state: IRouterState | undefined;
10
+ private setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>;
11
+ constructor(state: IRouterState | undefined, setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>)
11
12
  {
12
- this.component = component;
13
+ this.state = state;
14
+ this.setState = setState;
13
15
  this.notify = this.notify.bind(this);
14
16
  this.onInformation = this.onInformation.bind(this);
15
17
  this.onSuccess = this.onSuccess.bind(this);
@@ -19,12 +21,14 @@ export class Messenger
19
21
  }
20
22
  private notify(message: Notification)
21
23
  {
22
- let state = this.component.getState();
24
+ let state = this.state;
25
+ if (!state)
26
+ state = {};
23
27
  let id = Messenger.Counter++;
24
28
  if (!state.notifications)
25
29
  state.notifications = [];
26
30
  state.notifications[id] = message;
27
- this.component.setState(state);
31
+ this.setState(state);
28
32
  setTimeout(() =>
29
33
  {
30
34
  this.delNotification(id);
@@ -59,9 +63,11 @@ export class Messenger
59
63
  }
60
64
  delNotification(id: number): void
61
65
  {
62
- let state = this.component.getState();
66
+ let state = this.state;
67
+ if (!state)
68
+ state = {};
63
69
  if (state.notifications)
64
70
  delete state.notifications[id];
65
- this.component.setState(state);
71
+ this.setState(state);
66
72
  }
67
73
  }
@@ -2,43 +2,34 @@
2
2
  import { ReactNode } from "react";
3
3
  import queryString from 'query-string';
4
4
  import { IStorage, IStorageLocal, IStorageMemory, ObjectService, ParsedNameValue, URLOperation } from "namirasoft-core";
5
- import { IRouterStateChanger } from "./IRouterStateChanger";
6
5
  import { Messenger } from "./Messenger";
7
6
  import { NamirasoftAccountServer, TokenManager } from "namirasoft-account";
8
7
  import { IAccountProps } from "./IAccountProps";
9
8
  import { IRouterMaker } from "./IRouterMaker";
9
+ import { useLocation, useNavigate } from 'react-router-dom';
10
10
  import axios from "axios";
11
- // todo
12
- // import { RouteComponentProps } from 'react-router-dom';
13
-
14
- // todo
15
- // interface IProps extends RouteComponentProps
16
- // {
17
- // }
11
+ import { IRouterState } from "./IRouterState";
18
12
 
19
13
  export default class RouterMaker
20
14
  {
21
- private component: IRouterStateChanger & IRouterMaker;
22
- // todo
23
- // private props: IProps;
24
- constructor(component: IRouterStateChanger & IRouterMaker
25
- // todo
26
- // , props: IProps
27
- )
15
+ private state: IRouterState | undefined;
16
+ private setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>;
17
+ private component: IRouterMaker;
18
+ constructor(state: IRouterState | undefined, setState: React.Dispatch<React.SetStateAction<IRouterState | undefined>>, component: IRouterMaker)
28
19
  {
20
+ this.state = state;
21
+ this.setState = setState;
29
22
  this.component = component;
30
- // todo
31
- // this.props = props;
32
23
  this.init = this.init.bind(this);
33
24
  this.getQuery = this.getQuery.bind(this);
34
25
  this.getLink = this.getLink.bind(this);
35
26
  this.redirect = this.redirect.bind(this);
36
- this.onComponentDidMount = this.onComponentDidMount.bind(this);
27
+ this.onUseEffect = this.onUseEffect.bind(this);
37
28
  this.onRender = this.onRender.bind(this);
38
29
  }
39
30
  private init(): { props: IAccountProps, inited: boolean }
40
31
  {
41
- let messenger: Messenger = new Messenger(this.component);
32
+ let messenger: Messenger = new Messenger(this.state, this.setState);
42
33
  let qStorage: string = this.getQuery("location");
43
34
  let qAPI: string = this.getQuery("api");
44
35
  let qToken: string = this.getQuery("token");
@@ -50,7 +41,7 @@ export default class RouterMaker
50
41
  storage = new IStorageMemory();
51
42
  else
52
43
  storage = new IStorageLocal();
53
- let token_manager = new TokenManager(storage, () => this.component.setState({}));
44
+ let token_manager = new TokenManager(storage, () => this.setState({}));
54
45
  if (qToken)
55
46
  token_manager.setValue(qToken, true);
56
47
  let server = new NamirasoftAccountServer(token_manager, (error: Error) =>
@@ -74,19 +65,17 @@ export default class RouterMaker
74
65
  getLink: this.getLink,
75
66
  redirect: this.redirect,
76
67
  getQuery: this.getQuery,
77
- // todo
78
- // ...this.props
79
68
  },
80
69
  messenger,
81
70
  };
82
71
  let inited = true;
83
72
  if (qToken)
84
- inited = this.component.getState().inited ?? false;
73
+ inited = this.state?.inited ?? false;
85
74
  return { props, inited };
86
75
  }
87
76
  getQuery(name: string): string
88
77
  {
89
- // todo fix location.
78
+ const location = useLocation();
90
79
  let query = queryString.parse(location.search);
91
80
  let item = query[name];
92
81
  return new ObjectService(item).getString();
@@ -95,23 +84,21 @@ export default class RouterMaker
95
84
  {
96
85
  if (!customQuery)
97
86
  customQuery = {};
98
- // todo fix location.
87
+ const location = useLocation();
99
88
  let query = queryString.parse(location.search);
100
89
  let final = { ...query, ...customQuery };
101
90
  return URLOperation.getLink("", sub, final);
102
91
  }
103
92
  redirect(sub: string, customQuery: { [name: string]: ParsedNameValue }): void
104
93
  {
105
- // todo fix location.
106
- console.log({ sub, customQuery });
107
- // let ans = this.getLink(sub, customQuery);
108
- // const { history } = this.props;
109
- // history.push(ans);
94
+ const navigate = useNavigate();
95
+ let ans = this.getLink(sub, customQuery);
96
+ navigate(ans);
110
97
  }
111
- onComponentDidMount(): void
98
+ onUseEffect(): void
112
99
  {
113
100
  let { inited, props } = this.init();
114
- this.component.setState({ notifications: [], inited });
101
+ this.setState({ notifications: [], inited });
115
102
  let token = this.getQuery("token");
116
103
  if (token)
117
104
  {
@@ -121,11 +108,11 @@ export default class RouterMaker
121
108
  .then(response =>
122
109
  {
123
110
  props.account.token_manager.set(response, false);
124
- this.component.setState({ inited: true });
111
+ this.setState({ inited: true });
125
112
  })
126
113
  .catch(() =>
127
114
  {
128
- this.component.setState({ inited: true });
115
+ this.setState({ inited: true });
129
116
  });
130
117
  }
131
118
  }
package/src/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export * from "./IAccountProps";
2
2
  export * from "./IRouterMaker";
3
3
  export * from "./IRouterState";
4
- export * from "./IRouterStateChanger";
5
4
  export * from "./Messenger";
6
5
  export * from "./Notification";
7
6
  export * from "./NotificationType";
@@ -1,5 +0,0 @@
1
- import { IRouterState } from "./IRouterState";
2
- export interface IRouterStateChanger {
3
- setState(state: IRouterState): void;
4
- getState(): IRouterState;
5
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IRouterStateChanger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IRouterStateChanger.js","sourceRoot":"","sources":["../src/IRouterStateChanger.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import { IRouterState } from "./IRouterState";
2
-
3
- export interface IRouterStateChanger
4
- {
5
- setState(state: IRouterState): void;
6
- getState(): IRouterState;
7
- }