namirasoft-site-react 1.3.351 → 1.3.352

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,4 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from 'react';
2
3
  import Styles from './NSLayout.module.css';
3
4
  import { NSHeader } from './NSHeader';
4
5
  import { NSFooter } from './NSFooter';
@@ -9,6 +10,17 @@ import { NSBarTitle } from './NSBarTitle';
9
10
  import { NSSpace, NSSpaceSizeType } from './NSSpace';
10
11
  export function NSLayout(props) {
11
12
  var _a;
13
+ const [showNotifications, setShowNotifications] = useState(Array(props.notifications.length).fill(true));
14
+ useEffect(() => {
15
+ const timers = props.notifications.map((_, index) => setTimeout(() => {
16
+ setShowNotifications(prev => {
17
+ const newVisibility = [...prev];
18
+ newVisibility[index] = false;
19
+ return newVisibility;
20
+ });
21
+ }, 5000));
22
+ return () => timers.forEach(timer => clearTimeout(timer));
23
+ }, [props.notifications]);
12
24
  function isValidAction(action) {
13
25
  if (action)
14
26
  if (action.title || action.description || Object.keys(action.menus).length > 0)
@@ -24,7 +36,7 @@ export function NSLayout(props) {
24
36
  background: props.background,
25
37
  backgroundSize: "cover",
26
38
  backgroundAttachment: "fixed"
27
- }, children: [_jsx(NSHeader, { scope: props.scope, name: "Header", logo: props.logo, header: props.header, isLoggedIn: props.isLoggedIn }), props.notifications.map(props => _jsx(NSBarNotification, Object.assign({}, props))), isValidAction(props.action) && _jsx(NSBarAction, Object.assign({}, props.action)), props.banner && _jsx(NSBarHeroBanner, Object.assign({}, props.banner)), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), props.title &&
39
+ }, children: [_jsx(NSHeader, { scope: props.scope, name: "Header", logo: props.logo, header: props.header, isLoggedIn: props.isLoggedIn }), props.notifications.map((notification, index) => showNotifications[index] && _jsx(NSBarNotification, Object.assign({}, notification), index)), isValidAction(props.action) && _jsx(NSBarAction, Object.assign({}, props.action)), props.banner && _jsx(NSBarHeroBanner, Object.assign({}, props.banner)), _jsx(NSSpace, { size: NSSpaceSizeType.SMALL }), props.title &&
28
40
  _jsxs(_Fragment, { children: [_jsx(NSBarTitle, Object.assign({}, props.title)), _jsx(NSSpace, { size: NSSpaceSizeType.MEDUIM })] }), _jsx("main", { className: `d-flex flex-column text-white ${Styles.ns_layout_main}`, children: props.children }), _jsx(NSSpace, { size: NSSpaceSizeType.MEDUIM }), _jsx(NSFooter, { scope: props.scope, name: "Footer", logo: props.logo, isLoggedIn: props.isLoggedIn })] }));
29
41
  }
30
42
  //# sourceMappingURL=NSLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NSLayout.js","sourceRoot":"","sources":["../../src/components/NSLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAqB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAyB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAoB,UAAU,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAqBrD,MAAM,UAAU,QAAQ,CAAC,KAAqB;;IAE7C,SAAS,aAAa,CAAC,MAA0B;QAEhD,IAAI,MAAM;YACT,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAC7E,OAAO,IAAI,CAAC;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,CACN,eAAK,EAAE,EAAE,KAAK,CAAC,EAAE,EAChB,SAAS,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,MAAA,KAAK,CAAC,SAAS,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EACjE,KAAK,EAAE;YACN,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,cAAc,EAAE,OAAO;YACvB,oBAAoB,EAAE,OAAO;SAC7B,aACD,KAAC,QAAQ,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,KAAK,CAAC,UAAU,GAC3B,EACD,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAC,iBAAiB,oBAAK,KAAK,EAAsB,CAAC,EACpF,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAC,WAAW,oBAAK,KAAK,CAAC,MAAM,EAAkB,EAC9E,KAAK,CAAC,MAAM,IAAI,KAAC,eAAe,oBAAK,KAAK,CAAC,MAAM,EAAsB,EACxE,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,KAAK,GAAI,EACvC,KAAK,CAAC,KAAK;gBACX,8BACC,KAAC,UAAU,oBAAK,KAAK,CAAC,KAAK,EAAiB,EAC5C,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,MAAM,GAAI,IACvC,EAEJ,eAAM,SAAS,EAAE,iCAAiC,MAAM,CAAC,cAAc,EAAE,YACvE,KAAK,CAAC,QAAQ,GACT,EACP,KAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,MAAM,GAAI,EACzC,KAAC,QAAQ,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,UAAU,EAAE,KAAK,CAAC,UAAU,GAC3B,IACI,CACP,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"NSLayout.js","sourceRoot":"","sources":["../../src/components/NSLayout.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.3.351",
11
+ "version": "1.3.352",
12
12
  "author": "Amir Abolhasani, Alireza Esmaeeli, Sepideh Mazloumi, Hooman Shashaeh",
13
13
  "license": "MIT",
14
14
  "main": "./dist/main.js",
@@ -1,3 +1,4 @@
1
+ import { useState, useEffect } from 'react';
1
2
  import Styles from './NSLayout.module.css';
2
3
  import { ReactNode } from 'react';
3
4
  import { NSHeader } from './NSHeader';
@@ -31,6 +32,25 @@ export interface NSLayoutState
31
32
 
32
33
  export function NSLayout(props: INSLayoutProps)
33
34
  {
35
+ const [showNotifications, setShowNotifications] = useState<boolean[]>(Array(props.notifications.length).fill(true));
36
+
37
+ useEffect(() =>
38
+ {
39
+ const timers = props.notifications.map((_, index) =>
40
+ setTimeout(() =>
41
+ {
42
+ setShowNotifications(prev =>
43
+ {
44
+ const newVisibility = [...prev];
45
+ newVisibility[index] = false;
46
+ return newVisibility;
47
+ });
48
+ }, 5000)
49
+ );
50
+
51
+ return () => timers.forEach(timer => clearTimeout(timer));
52
+ }, [props.notifications]);
53
+
34
54
  function isValidAction(action?: INSBarActionProps): action is INSBarActionProps
35
55
  {
36
56
  if (action)
@@ -38,6 +58,7 @@ export function NSLayout(props: INSLayoutProps)
38
58
  return true;
39
59
  return false;
40
60
  }
61
+
41
62
  return (
42
63
  <div id={props.id}
43
64
  className={`${Styles.ns_container} ${props.classList?.join(" ")}`}
@@ -58,13 +79,15 @@ export function NSLayout(props: INSLayoutProps)
58
79
  header={props.header}
59
80
  isLoggedIn={props.isLoggedIn}
60
81
  />
61
- {props.notifications.map(props => <NSBarNotification {...props}></NSBarNotification>)}
62
- {isValidAction(props.action) && <NSBarAction {...props.action} ></NSBarAction >}
63
- {props.banner && <NSBarHeroBanner {...props.banner} ></NSBarHeroBanner >}
82
+ {props.notifications.map((notification, index) =>
83
+ showNotifications[index] && <NSBarNotification key={index} {...notification} />
84
+ )}
85
+ {isValidAction(props.action) && <NSBarAction {...props.action} ></NSBarAction>}
86
+ {props.banner && <NSBarHeroBanner {...props.banner} ></NSBarHeroBanner>}
64
87
  <NSSpace size={NSSpaceSizeType.SMALL} />
65
88
  {props.title &&
66
89
  <>
67
- <NSBarTitle {...props.title} ></NSBarTitle >
90
+ <NSBarTitle {...props.title}></NSBarTitle>
68
91
  <NSSpace size={NSSpaceSizeType.MEDUIM} />
69
92
  </>
70
93
  }
@@ -78,6 +101,6 @@ export function NSLayout(props: INSLayoutProps)
78
101
  logo={props.logo}
79
102
  isLoggedIn={props.isLoggedIn}
80
103
  />
81
- </div >
104
+ </div>
82
105
  );
83
106
  }