namirasoft-site-react 1.4.329 → 1.4.330

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;
@@ -31,22 +32,28 @@ export class NSNotifier {
31
32
  return ans;
32
33
  }
33
34
  setNotifications(notifications) {
34
- notifications.forEach(n => {
35
- if (!n.expired_at)
36
- n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
35
+ NSNotifier.mutex_set.runExclusive(() => {
36
+ notifications.forEach(n => {
37
+ if (!n.expired_at)
38
+ n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
39
+ });
40
+ this.storage.set("ns-notifications", JSON.stringify(notifications));
41
+ this.setState();
37
42
  });
38
- this.storage.set("ns-notifications", JSON.stringify(notifications));
39
- this.setState();
40
43
  }
41
44
  delNotification(id) {
42
- let notifications = this.getNotifications();
43
- notifications = notifications.filter(x => x.id !== id);
44
- this.setNotifications(notifications);
45
+ NSNotifier.mutex_mofify.runExclusive(() => {
46
+ let notifications = this.getNotifications();
47
+ notifications = notifications.filter(x => x.id !== id);
48
+ this.setNotifications(notifications);
49
+ });
45
50
  }
46
51
  notify(message) {
47
- let notifications = this.getNotifications();
48
- notifications.push(message);
49
- this.setNotifications(notifications);
52
+ NSNotifier.mutex_mofify.runExclusive(() => {
53
+ let notifications = this.getNotifications();
54
+ notifications.push(message);
55
+ this.setNotifications(notifications);
56
+ });
50
57
  setTimeout(() => {
51
58
  this.delNotification(message.id);
52
59
  }, this.timeout);
@@ -79,4 +86,6 @@ export class NSNotifier {
79
86
  this.notify({ id, text, type: NotificationType.Error, color: NSBarNotificationColor.RED });
80
87
  }
81
88
  }
89
+ NSNotifier.mutex_mofify = new Mutex();
90
+ NSNotifier.mutex_set = new Mutex();
82
91
  //# sourceMappingURL=NSNotifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSNotifier.js","sourceRoot":"","sources":["../../src/routing/NSNotifier.ts"],"names":[],"mappings":"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"}
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.330",
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;
@@ -40,25 +43,34 @@ export class NSNotifier
40
43
  }
41
44
  setNotifications(notifications: NSBarNotificationProps[]): void
42
45
  {
43
- notifications.forEach(n =>
46
+ NSNotifier.mutex_set.runExclusive(() =>
44
47
  {
45
- if (!n.expired_at)
46
- n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
48
+ notifications.forEach(n =>
49
+ {
50
+ if (!n.expired_at)
51
+ n.expired_at = TimeOperation.millisecondsLater(this.timeout, new Date());
52
+ });
53
+ this.storage.set("ns-notifications", JSON.stringify(notifications));
54
+ this.setState();
47
55
  });
48
- this.storage.set("ns-notifications", JSON.stringify(notifications));
49
- this.setState();
50
56
  }
51
57
  delNotification(id: string): void
52
58
  {
53
- let notifications: NSBarNotificationProps[] = this.getNotifications();
54
- notifications = notifications.filter(x => x.id !== id);
55
- this.setNotifications(notifications);
59
+ NSNotifier.mutex_mofify.runExclusive(() =>
60
+ {
61
+ let notifications: NSBarNotificationProps[] = this.getNotifications();
62
+ notifications = notifications.filter(x => x.id !== id);
63
+ this.setNotifications(notifications);
64
+ });
56
65
  }
57
66
  private notify(message: NSBarNotificationProps)
58
67
  {
59
- let notifications: NSBarNotificationProps[] = this.getNotifications();
60
- notifications.push(message);
61
- this.setNotifications(notifications);
68
+ NSNotifier.mutex_mofify.runExclusive(() =>
69
+ {
70
+ let notifications: NSBarNotificationProps[] = this.getNotifications();
71
+ notifications.push(message);
72
+ this.setNotifications(notifications);
73
+ });
62
74
  setTimeout(() =>
63
75
  {
64
76
  this.delNotification(message.id);