namirasoft-site-react 1.4.329 → 1.4.331

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,6 +1,8 @@
1
1
  import { NSBarNotificationProps } from "../components/NSBarNotification";
2
2
  import { IStorage } from "namirasoft-core";
3
3
  export declare class NSNotifier {
4
+ private static mutex_mofify;
5
+ private static mutex_set;
4
6
  private storage;
5
7
  private setState;
6
8
  timeout: number;
@@ -1,6 +1,7 @@
1
1
  import axios from "axios";
2
2
  import { NSBarNotificationColor, NotificationType } from "../components/NSBarNotification";
3
3
  import { BaseUUID, TimeOperation } from "namirasoft-core";
4
+ import { Mutex } from 'async-mutex';
4
5
  export class NSNotifier {
5
6
  constructor(storage, setState) {
6
7
  this.timeout = 5000;
@@ -20,6 +21,7 @@ export class NSNotifier {
20
21
  let value = this.storage.get("ns-notifications", "");
21
22
  if (value)
22
23
  ans = JSON.parse(value);
24
+ console.log("getNotification-Before", ans);
23
25
  let now = new Date();
24
26
  ans = ans.filter(x => {
25
27
  if (x.expired_at) {
@@ -28,25 +30,36 @@ export class NSNotifier {
28
30
  }
29
31
  return false;
30
32
  });
33
+ console.log("getNotification-After", ans);
31
34
  return ans;
32
35
  }
33
36
  setNotifications(notifications) {
34
- notifications.forEach(n => {
35
- if (!n.expired_at)
36
- n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
37
+ NSNotifier.mutex_set.runExclusive(() => {
38
+ notifications.forEach(n => {
39
+ if (!n.expired_at)
40
+ n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
41
+ });
42
+ this.storage.set("ns-notifications", JSON.stringify(notifications));
43
+ this.setState();
37
44
  });
38
- this.storage.set("ns-notifications", JSON.stringify(notifications));
39
- this.setState();
40
45
  }
41
46
  delNotification(id) {
42
- let notifications = this.getNotifications();
43
- notifications = notifications.filter(x => x.id !== id);
44
- this.setNotifications(notifications);
47
+ NSNotifier.mutex_mofify.runExclusive(() => {
48
+ console.log("delNotification-Before", id);
49
+ let notifications = this.getNotifications();
50
+ let tobedeleted = notifications.filter(x => x.id === id);
51
+ notifications = notifications.filter(x => x.id !== id);
52
+ this.setNotifications(notifications);
53
+ console.log("delNotification-After", tobedeleted);
54
+ });
45
55
  }
46
56
  notify(message) {
47
- let notifications = this.getNotifications();
48
- notifications.push(message);
49
- this.setNotifications(notifications);
57
+ NSNotifier.mutex_mofify.runExclusive(() => {
58
+ console.log("notify", message);
59
+ let notifications = this.getNotifications();
60
+ notifications.push(message);
61
+ this.setNotifications(notifications);
62
+ });
50
63
  setTimeout(() => {
51
64
  this.delNotification(message.id);
52
65
  }, this.timeout);
@@ -79,4 +92,6 @@ export class NSNotifier {
79
92
  this.notify({ id, text, type: NotificationType.Error, color: NSBarNotificationColor.RED });
80
93
  }
81
94
  }
95
+ NSNotifier.mutex_mofify = new Mutex();
96
+ NSNotifier.mutex_set = new Mutex();
82
97
  //# sourceMappingURL=NSNotifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSNotifier.js","sourceRoot":"","sources":["../../src/routing/NSNotifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAA0B,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,EAAE,QAAQ,EAAY,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,OAAO,UAAU;IAKnB,YAAY,OAAiB,EAAE,QAAoB;QAD5C,YAAO,GAAW,IAAI,CAAC;QAG1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,gBAAgB;QAEZ,IAAI,GAAG,GAA6B,EAAE,CAAC;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,KAAK;YACL,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAEjB,IAAI,CAAC,CAAC,UAAU,EAChB,CAAC;gBACG,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;gBACxC,OAAO,UAAU,IAAI,GAAG,CAAC;YAC7B,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,CAAC;IACf,CAAC;IACD,gBAAgB,CAAC,aAAuC;QAEpD,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAEtB,IAAI,CAAC,CAAC,CAAC,UAAU;gBACb,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IACD,eAAe,CAAC,EAAU;QAEtB,IAAI,aAAa,GAA6B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IACO,MAAM,CAAC,OAA+B;QAE1C,IAAI,aAAa,GAA6B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrC,UAAU,CAAC,GAAG,EAAE;YAEZ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,aAAa,CAAC,IAAY;QAEtB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,SAAS,CAAC,IAAY;QAElB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC;IACnG,CAAC;IACD,SAAS,CAAC,IAAY;QAElB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,CAAC,KAAqB;;QAEzB,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAW,EAAE,CAAC;QACtB,IAAI,KAAK,YAAY,KAAK,EAC1B,CAAC;YACG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;YACrB,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;gBACzB,IAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI;oBACpB,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACvC,CAAC;;YAEG,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/F,CAAC;CACJ"}
1
+ {"version":3,"file":"NSNotifier.js","sourceRoot":"","sources":["../../src/routing/NSNotifier.ts"],"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.329",
11
+ "version": "1.4.331",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -1,9 +1,12 @@
1
1
  import axios from "axios";
2
2
  import { NSBarNotificationColor, NSBarNotificationProps, NotificationType } from "../components/NSBarNotification";
3
3
  import { BaseUUID, IStorage, TimeOperation } from "namirasoft-core";
4
+ import { Mutex } from 'async-mutex';
4
5
 
5
6
  export class NSNotifier
6
7
  {
8
+ private static mutex_mofify: Mutex = new Mutex();
9
+ private static mutex_set: Mutex = new Mutex();
7
10
  private storage: IStorage;
8
11
  private setState: () => void;
9
12
  public timeout: number = 5000;
@@ -26,6 +29,8 @@ export class NSNotifier
26
29
  let value = this.storage.get("ns-notifications", "");
27
30
  if (value)
28
31
  ans = JSON.parse(value);
32
+
33
+ console.log("getNotification-Before", ans);
29
34
  let now = new Date();
30
35
  ans = ans.filter(x =>
31
36
  {
@@ -36,29 +41,43 @@ export class NSNotifier
36
41
  }
37
42
  return false;
38
43
  })
44
+ console.log("getNotification-After", ans);
39
45
  return ans;
40
46
  }
41
47
  setNotifications(notifications: NSBarNotificationProps[]): void
42
48
  {
43
- notifications.forEach(n =>
49
+ NSNotifier.mutex_set.runExclusive(() =>
44
50
  {
45
- if (!n.expired_at)
46
- n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
51
+ notifications.forEach(n =>
52
+ {
53
+ if (!n.expired_at)
54
+ n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
55
+ });
56
+ this.storage.set("ns-notifications", JSON.stringify(notifications));
57
+ this.setState();
47
58
  });
48
- this.storage.set("ns-notifications", JSON.stringify(notifications));
49
- this.setState();
50
59
  }
51
60
  delNotification(id: string): void
52
61
  {
53
- let notifications: NSBarNotificationProps[] = this.getNotifications();
54
- notifications = notifications.filter(x => x.id !== id);
55
- this.setNotifications(notifications);
62
+ NSNotifier.mutex_mofify.runExclusive(() =>
63
+ {
64
+ console.log("delNotification-Before", id);
65
+ let notifications: NSBarNotificationProps[] = this.getNotifications();
66
+ let tobedeleted = notifications.filter(x => x.id === id);
67
+ notifications = notifications.filter(x => x.id !== id);
68
+ this.setNotifications(notifications);
69
+ console.log("delNotification-After", tobedeleted);
70
+ });
56
71
  }
57
72
  private notify(message: NSBarNotificationProps)
58
73
  {
59
- let notifications: NSBarNotificationProps[] = this.getNotifications();
60
- notifications.push(message);
61
- this.setNotifications(notifications);
74
+ NSNotifier.mutex_mofify.runExclusive(() =>
75
+ {
76
+ console.log("notify", message);
77
+ let notifications: NSBarNotificationProps[] = this.getNotifications();
78
+ notifications.push(message);
79
+ this.setNotifications(notifications);
80
+ });
62
81
  setTimeout(() =>
63
82
  {
64
83
  this.delNotification(message.id);