namirasoft-account-react 1.3.129 → 1.3.130
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 +2 -3
- package/dist/App.js.map +1 -1
- package/dist/components/NSAAccessModel.d.ts +17 -0
- package/dist/components/NSAAccessModel.js +71 -0
- package/dist/components/NSAAccessModel.js.map +1 -0
- package/dist/layouts/NSALayout.d.ts +1 -0
- package/dist/layouts/NSALayout.js +7 -7
- package/dist/layouts/NSALayout.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/package.json +2 -1
- package/src/App.tsx +0 -3
- package/src/components/NSAAccessModel.tsx +136 -0
- package/src/layouts/NSALayout.tsx +13 -7
- package/src/main.ts +1 -1
- package/dist/components/NSAAccess.d.ts +0 -16
- package/dist/components/NSAAccess.js +0 -46
- package/dist/components/NSAAccess.js.map +0 -1
- package/src/components/NSAAccess.tsx +0 -106
- /package/dist/components/{NSAAccess.module.css → NSAAccessModel.module.css} +0 -0
- /package/src/components/{NSAAccess.module.css → NSAAccessModel.module.css} +0 -0
package/dist/App.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import NSAAccess from './components/NSAAccess';
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
2
|
export function App() {
|
|
4
|
-
return (_jsx(_Fragment, {
|
|
3
|
+
return (_jsx(_Fragment, {}));
|
|
5
4
|
}
|
|
6
5
|
;
|
|
7
6
|
//# 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":";AAAA,
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,GAAG;IAEf,OAAO,CACH,mBACG,CACN,CAAC;AACN,CAAC;AAAA,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
import { INSARouterProps } from '../INSARouterProps';
|
|
3
|
+
import { PermissionRow } from 'namirasoft-access';
|
|
4
|
+
export interface NSAAccessModelProps extends INSARouterProps {
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
}
|
|
7
|
+
export interface NSAAccessModelState {
|
|
8
|
+
permissions: PermissionRow[] | null;
|
|
9
|
+
}
|
|
10
|
+
export default class NSAAccessModel extends Component<NSAAccessModelProps, NSAAccessModelState> {
|
|
11
|
+
private toastRef;
|
|
12
|
+
constructor(props: NSAAccessModelProps);
|
|
13
|
+
componentDidMount(): void;
|
|
14
|
+
componentWillUnmount(): void;
|
|
15
|
+
private handleClickOutside;
|
|
16
|
+
render(): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Component, createRef } from 'react';
|
|
3
|
+
import Styles from './NSAAccessModel.module.css';
|
|
4
|
+
import ProfileAccount from '../assets/images/icon-close.png';
|
|
5
|
+
import CloseToast from '../assets/images/icon-close.png';
|
|
6
|
+
import { NamirasoftAccessServer } from 'namirasoft-access';
|
|
7
|
+
export default class NSAAccessModel extends Component {
|
|
8
|
+
constructor(props) {
|
|
9
|
+
super(props);
|
|
10
|
+
this.state = { permissions: null };
|
|
11
|
+
this.toastRef = createRef();
|
|
12
|
+
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
13
|
+
}
|
|
14
|
+
componentDidMount() {
|
|
15
|
+
document.addEventListener('mousedown', this.handleClickOutside);
|
|
16
|
+
let server = new NamirasoftAccessServer(this.props.account.token_manager, console.error);
|
|
17
|
+
server.permission.ListIncoming([], null, null).then(res => {
|
|
18
|
+
this.setState({ permissions: res.rows });
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
componentWillUnmount() {
|
|
22
|
+
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
23
|
+
}
|
|
24
|
+
handleClickOutside(event) {
|
|
25
|
+
if (this.toastRef.current && !this.toastRef.current.contains(event.target))
|
|
26
|
+
this.props.onClose();
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
let profile = null;
|
|
30
|
+
let content = null;
|
|
31
|
+
if (this.state.permissions == null) {
|
|
32
|
+
content = null;
|
|
33
|
+
}
|
|
34
|
+
else if (this.state.permissions.length == 0) {
|
|
35
|
+
content = null;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
let user_id = this.props.account.token_manager.getUserData(u => u.id, "");
|
|
39
|
+
let first_name = this.props.account.token_manager.getUserData(u => u.first_name, "");
|
|
40
|
+
let last_name = this.props.account.token_manager.getUserData(u => u.last_name, "");
|
|
41
|
+
let email = this.props.account.token_manager.getUserData(u => u.email, "");
|
|
42
|
+
let generate = (permission) => {
|
|
43
|
+
return _jsxs("div", { className: Styles.ns_access_account_container, onClick: () => {
|
|
44
|
+
let server = new NamirasoftAccessServer(this.props.account.token_manager, console.error);
|
|
45
|
+
if (permission.user_id)
|
|
46
|
+
server.access.SetOwner({ owner_id: permission.user_id });
|
|
47
|
+
else
|
|
48
|
+
server.access.SetOwner({ owner_id: null });
|
|
49
|
+
}, children: [_jsx("div", { className: Styles.ns_access_account_info, children: _jsx("img", { src: ProfileAccount, alt: 'User Profile', width: 48, height: 48, className: 'rounded-circle' }) }), _jsxs("div", { className: 'd-flex flex-column', children: [_jsx("h4", { children: `${permission.firstName} ${permission.lastName}`.trim() }), _jsx("h5", { children: permission.user_id })] })] });
|
|
50
|
+
};
|
|
51
|
+
let me = {
|
|
52
|
+
id: "",
|
|
53
|
+
user_id,
|
|
54
|
+
to_user_id: user_id,
|
|
55
|
+
firstName: first_name,
|
|
56
|
+
lastName: last_name,
|
|
57
|
+
email: email,
|
|
58
|
+
default: this.state.permissions.filter(x => x.default).length == 0
|
|
59
|
+
};
|
|
60
|
+
let permissions = [me, ...this.state.permissions];
|
|
61
|
+
let current = permissions.filter(x => x.default)[0];
|
|
62
|
+
content = permissions.filter(x => !x.default).map(generate);
|
|
63
|
+
profile = _jsxs(_Fragment, { children: [_jsx("div", { className: 'text-center pb-2', children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/no-profile/grey.svg", alt: 'No Profile', width: 103, height: 103, className: 'rounded-circle' }) }), _jsx("h2", { className: 'text-center', children: current.user_id }), _jsx("h6", { className: 'text-center pb-2', children: `${current.firstName} ${current.lastName}`.trim() })] });
|
|
64
|
+
}
|
|
65
|
+
return (_jsxs(_Fragment, { children: [_jsxs("section", { className: Styles.ns_access_container, ref: this.toastRef, children: [_jsxs("div", { className: Styles.ns_access_content, children: [_jsx("div", { className: 'd-flex justify-content-end', children: _jsx("img", { src: CloseToast, alt: "Close", width: 18, height: 18, onClick: (e) => {
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
this.props.onClose();
|
|
68
|
+
}, className: Styles.nsa_close_icon }) }), profile] }), content] }), _jsx("div", { className: Styles.nsa_toast_background })] }));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=NSAAccessModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSAAccessModel.js","sourceRoot":"","sources":["../../src/components/NSAAccessModel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,11 @@ import { Actions } from './Actions';
|
|
|
18
18
|
import { useParams } from 'react-router-dom';
|
|
19
19
|
import { NamingConvention } from 'namirasoft-core';
|
|
20
20
|
import { NSAMessageDialog } from '../main';
|
|
21
|
-
import
|
|
21
|
+
import NSAAccessModel from '../components/NSAAccessModel';
|
|
22
22
|
export function NSALayout(props) {
|
|
23
23
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
|
|
24
24
|
const Section_List = useRef(null);
|
|
25
|
-
const
|
|
26
|
-
const [state, setState] = useState({ showDeleteModal: false, showMessageModal: false });
|
|
25
|
+
const [state, setState] = useState({ showDeleteModal: false, showMessageModal: false, showAccessModal: false });
|
|
27
26
|
const hideDeleteModal = () => { setState(prevState => (Object.assign(Object.assign({}, prevState), { showDeleteModal: false }))); };
|
|
28
27
|
const showDeleteModal = () => { setState(prevState => (Object.assign(Object.assign({}, prevState), { showDeleteModal: true }))); };
|
|
29
28
|
let icons = [
|
|
@@ -46,11 +45,12 @@ export function NSALayout(props) {
|
|
|
46
45
|
},
|
|
47
46
|
{
|
|
48
47
|
src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png", alt: "Access", onClicked: () => {
|
|
49
|
-
|
|
50
|
-
(_a = Access.current) === null || _a === void 0 ? void 0 : _a.show();
|
|
48
|
+
setState(prevState => (Object.assign(Object.assign({}, prevState), { showAccessModal: true })));
|
|
51
49
|
},
|
|
52
|
-
children: _jsx(
|
|
53
|
-
|
|
50
|
+
children: _jsx(_Fragment, { children: (state.showAccessModal) && _jsx(NSAAccessModel, Object.assign({}, props, { onClose: () => {
|
|
51
|
+
setState(prevState => (Object.assign(Object.assign({}, prevState), { showMessageModal: false })));
|
|
52
|
+
} })) })
|
|
53
|
+
}
|
|
54
54
|
];
|
|
55
55
|
let name = "";
|
|
56
56
|
if (props.pages)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSALayout.js","sourceRoot":"","sources":["../../src/layouts/NSALayout.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAA4G,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACvK,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAuB,OAAO,IAAI,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAa,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"NSALayout.js","sourceRoot":"","sources":["../../src/layouts/NSALayout.tsx"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./components/NSADeleteModal";
|
|
2
2
|
export * from "./components/NSAMessageDialog";
|
|
3
3
|
export * from "./layouts/Actions";
|
|
4
|
-
export * from "./components/
|
|
4
|
+
export * from "./components/NSAAccessModel";
|
|
5
5
|
export * from "./layouts/NSALayout";
|
|
6
6
|
export * from "./layouts/NSASectionEdit";
|
|
7
7
|
export * from "./layouts/NSASectionList";
|
package/dist/main.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./components/NSADeleteModal";
|
|
2
2
|
export * from "./components/NSAMessageDialog";
|
|
3
3
|
export * from "./layouts/Actions";
|
|
4
|
-
export * from "./components/
|
|
4
|
+
export * from "./components/NSAAccessModel";
|
|
5
5
|
export * from "./layouts/NSALayout";
|
|
6
6
|
export * from "./layouts/NSASectionEdit";
|
|
7
7
|
export * from "./layouts/NSASectionList";
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"framework": "npm",
|
|
9
9
|
"application": "package",
|
|
10
10
|
"private": false,
|
|
11
|
-
"version": "1.3.
|
|
11
|
+
"version": "1.3.130",
|
|
12
12
|
"author": "Amir Abolhasani",
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"main": "./dist/main.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"@types/device-uuid": "^1.0.3",
|
|
25
25
|
"@types/react": "^18.3.3",
|
|
26
26
|
"device-uuid": "^1.0.4",
|
|
27
|
+
"namirasoft-access": "^1.3.12",
|
|
27
28
|
"namirasoft-account": "^1.3.29",
|
|
28
29
|
"namirasoft-account-client": "^1.3.0",
|
|
29
30
|
"namirasoft-core": "^1.3.67",
|
package/src/App.tsx
CHANGED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import React, { Component, createRef } from 'react';
|
|
2
|
+
|
|
3
|
+
import Styles from './NSAAccessModel.module.css';
|
|
4
|
+
import ProfileAccount from '../assets/images/icon-close.png';
|
|
5
|
+
import CloseToast from '../assets/images/icon-close.png';
|
|
6
|
+
import { INSARouterProps } from '../INSARouterProps';
|
|
7
|
+
import { NamirasoftAccessServer, PermissionRow } from 'namirasoft-access';
|
|
8
|
+
|
|
9
|
+
export interface NSAAccessModelProps extends INSARouterProps
|
|
10
|
+
{
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface NSAAccessModelState
|
|
15
|
+
{
|
|
16
|
+
permissions: PermissionRow[] | null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default class NSAAccessModel extends Component<NSAAccessModelProps, NSAAccessModelState>
|
|
20
|
+
{
|
|
21
|
+
private toastRef: React.RefObject<HTMLDivElement>;
|
|
22
|
+
|
|
23
|
+
constructor(props: NSAAccessModelProps)
|
|
24
|
+
{
|
|
25
|
+
super(props);
|
|
26
|
+
this.state = { permissions: null };
|
|
27
|
+
this.toastRef = createRef();
|
|
28
|
+
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
29
|
+
}
|
|
30
|
+
override componentDidMount(): void
|
|
31
|
+
{
|
|
32
|
+
document.addEventListener('mousedown', this.handleClickOutside);
|
|
33
|
+
let server = new NamirasoftAccessServer(this.props.account.token_manager, console.error);
|
|
34
|
+
server.permission.ListIncoming([], null, null).then(res =>
|
|
35
|
+
{
|
|
36
|
+
this.setState({ permissions: res.rows });
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
override componentWillUnmount(): void
|
|
40
|
+
{
|
|
41
|
+
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
42
|
+
}
|
|
43
|
+
private handleClickOutside(event: MouseEvent)
|
|
44
|
+
{
|
|
45
|
+
if (this.toastRef.current && !this.toastRef.current.contains(event.target as Node))
|
|
46
|
+
this.props.onClose();
|
|
47
|
+
}
|
|
48
|
+
override render()
|
|
49
|
+
{
|
|
50
|
+
let profile = null;
|
|
51
|
+
let content = null;
|
|
52
|
+
if (this.state.permissions == null)
|
|
53
|
+
{
|
|
54
|
+
content = null; // todo Loading
|
|
55
|
+
}
|
|
56
|
+
else if (this.state.permissions.length == 0)
|
|
57
|
+
{
|
|
58
|
+
content = null; // todo no permission
|
|
59
|
+
}
|
|
60
|
+
else
|
|
61
|
+
{
|
|
62
|
+
let user_id = this.props.account.token_manager.getUserData(u => u.id, "");
|
|
63
|
+
let first_name = this.props.account.token_manager.getUserData(u => u.first_name, "");
|
|
64
|
+
let last_name = this.props.account.token_manager.getUserData(u => u.last_name, "");
|
|
65
|
+
let email = this.props.account.token_manager.getUserData(u => u.email, "");
|
|
66
|
+
let generate = (permission: PermissionRow) =>
|
|
67
|
+
{
|
|
68
|
+
return <div
|
|
69
|
+
className={Styles.ns_access_account_container}
|
|
70
|
+
onClick={() =>
|
|
71
|
+
{
|
|
72
|
+
let server = new NamirasoftAccessServer(this.props.account.token_manager, console.error);
|
|
73
|
+
if (permission.user_id)
|
|
74
|
+
server.access.SetOwner({ owner_id: permission.user_id });
|
|
75
|
+
else
|
|
76
|
+
server.access.SetOwner({ owner_id: null });
|
|
77
|
+
}}
|
|
78
|
+
>
|
|
79
|
+
<div className={Styles.ns_access_account_info}>
|
|
80
|
+
<img src={ProfileAccount} alt='User Profile' width={48} height={48} className='rounded-circle' />
|
|
81
|
+
</div>
|
|
82
|
+
<div className='d-flex flex-column'>
|
|
83
|
+
<h4>{`${permission.firstName} ${permission.lastName}`.trim()}</h4>
|
|
84
|
+
<h5>{permission.user_id}</h5>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let me = {
|
|
90
|
+
id: "",
|
|
91
|
+
user_id,
|
|
92
|
+
to_user_id: user_id,
|
|
93
|
+
firstName: first_name,
|
|
94
|
+
lastName: last_name,
|
|
95
|
+
email: email,
|
|
96
|
+
default: this.state.permissions.filter(x => x.default).length == 0
|
|
97
|
+
};
|
|
98
|
+
let permissions = [me, ...this.state.permissions];
|
|
99
|
+
let current = permissions.filter(x => x.default)[0];
|
|
100
|
+
content = permissions.filter(x => !x.default).map(generate);
|
|
101
|
+
profile = <>
|
|
102
|
+
<div className='text-center pb-2'>
|
|
103
|
+
<img src={"https://static.namirasoft.com/image/concept/no-profile/grey.svg"} alt='No Profile' width={103} height={103} className='rounded-circle' />
|
|
104
|
+
</div>
|
|
105
|
+
<h2 className='text-center'>{current.user_id}</h2>
|
|
106
|
+
<h6 className='text-center pb-2'>{`${current.firstName} ${current.lastName}`.trim()}</h6>
|
|
107
|
+
</>;
|
|
108
|
+
}
|
|
109
|
+
return (
|
|
110
|
+
<>
|
|
111
|
+
<section className={Styles.ns_access_container} ref={this.toastRef}>
|
|
112
|
+
<div className={Styles.ns_access_content}>
|
|
113
|
+
<div className='d-flex justify-content-end'>
|
|
114
|
+
<img
|
|
115
|
+
src={CloseToast}
|
|
116
|
+
alt="Close"
|
|
117
|
+
width={18}
|
|
118
|
+
height={18}
|
|
119
|
+
onClick={(e) =>
|
|
120
|
+
{
|
|
121
|
+
e.stopPropagation();
|
|
122
|
+
this.props.onClose();
|
|
123
|
+
}}
|
|
124
|
+
className={Styles.nsa_close_icon}
|
|
125
|
+
/>
|
|
126
|
+
</div>
|
|
127
|
+
{profile}
|
|
128
|
+
</div>
|
|
129
|
+
{content}
|
|
130
|
+
</section>
|
|
131
|
+
<div className={Styles.nsa_toast_background}>
|
|
132
|
+
</div >
|
|
133
|
+
</>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -11,8 +11,7 @@ import { useParams } from 'react-router-dom';
|
|
|
11
11
|
import { NamingConvention } from 'namirasoft-core';
|
|
12
12
|
import { IEntityInfo } from '../IEntityInfo';
|
|
13
13
|
import { NSAMessageDialog } from '../main';
|
|
14
|
-
import
|
|
15
|
-
// import NSAAccess from '../components/NSAAccess';
|
|
14
|
+
import NSAAccessModel from '../components/NSAAccessModel';
|
|
16
15
|
|
|
17
16
|
export interface NSALayoutProps<EntityType extends { id: string }, EntityTypeInput = EntityType> extends IBaseComponentProps, INSARouterProps
|
|
18
17
|
{
|
|
@@ -50,14 +49,14 @@ export interface NSALayoutState
|
|
|
50
49
|
{
|
|
51
50
|
showDeleteModal: boolean;
|
|
52
51
|
showMessageModal: boolean;
|
|
52
|
+
showAccessModal: boolean;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export function NSALayout<EntityType extends { id: string }, EntityTypeInput = EntityType>(props: NSALayoutProps<EntityType, EntityTypeInput>)
|
|
56
56
|
{
|
|
57
57
|
const Section_List = useRef<NSASectionList<EntityType, EntityTypeInput>>(null);
|
|
58
|
-
const Access = useRef<NSAAccess>(null);
|
|
59
58
|
|
|
60
|
-
const [state, setState] = useState<NSALayoutState>({ showDeleteModal: false, showMessageModal: false });
|
|
59
|
+
const [state, setState] = useState<NSALayoutState>({ showDeleteModal: false, showMessageModal: false, showAccessModal: false });
|
|
61
60
|
|
|
62
61
|
const hideDeleteModal = () => { setState(prevState => ({ ...prevState, showDeleteModal: false })); };
|
|
63
62
|
const showDeleteModal = () => { setState(prevState => ({ ...prevState, showDeleteModal: true })); };
|
|
@@ -91,10 +90,17 @@ export function NSALayout<EntityType extends { id: string }, EntityTypeInput = E
|
|
|
91
90
|
{
|
|
92
91
|
src: "https://static.namirasoft.com/image/namirasoft/access/logo/base.png", alt: "Access", onClicked: () =>
|
|
93
92
|
{
|
|
94
|
-
|
|
93
|
+
setState(prevState => ({ ...prevState, showAccessModal: true }));
|
|
95
94
|
},
|
|
96
|
-
children:
|
|
97
|
-
|
|
95
|
+
children: <>
|
|
96
|
+
{
|
|
97
|
+
(state.showAccessModal) && <NSAAccessModel {...props} onClose={() =>
|
|
98
|
+
{
|
|
99
|
+
setState(prevState => ({ ...prevState, showMessageModal: false }));
|
|
100
|
+
}} />
|
|
101
|
+
}
|
|
102
|
+
</>
|
|
103
|
+
}
|
|
98
104
|
];
|
|
99
105
|
let name = "";
|
|
100
106
|
if (props.pages)
|
package/src/main.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./components/NSADeleteModal";
|
|
2
2
|
export * from "./components/NSAMessageDialog";
|
|
3
3
|
export * from "./layouts/Actions";
|
|
4
|
-
export * from "./components/
|
|
4
|
+
export * from "./components/NSAAccessModel";
|
|
5
5
|
export * from "./layouts/NSALayout";
|
|
6
6
|
export * from "./layouts/NSASectionEdit";
|
|
7
7
|
export * from "./layouts/NSASectionList";
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Component } from 'react';
|
|
2
|
-
export interface NSAAccessProps {
|
|
3
|
-
}
|
|
4
|
-
export interface NSAAccessState {
|
|
5
|
-
show: boolean;
|
|
6
|
-
}
|
|
7
|
-
export default class NSAAccess extends Component<NSAAccessProps, NSAAccessState> {
|
|
8
|
-
private toastRef;
|
|
9
|
-
constructor(props: NSAAccessProps);
|
|
10
|
-
componentDidMount(): void;
|
|
11
|
-
componentWillUnmount(): void;
|
|
12
|
-
show(): void;
|
|
13
|
-
hide(): void;
|
|
14
|
-
handleClickOutside(event: MouseEvent): void;
|
|
15
|
-
render(): import("react/jsx-runtime").JSX.Element | null;
|
|
16
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { Component, createRef } from 'react';
|
|
3
|
-
import Styles from './NSAAccess.module.css';
|
|
4
|
-
import ProfileAccount from '../assets/images/icon-close.png';
|
|
5
|
-
import CloseToast from '../assets/images/icon-close.png';
|
|
6
|
-
export default class NSAAccess extends Component {
|
|
7
|
-
constructor(props) {
|
|
8
|
-
super(props);
|
|
9
|
-
this.state = { show: false };
|
|
10
|
-
this.toastRef = createRef();
|
|
11
|
-
this.show = this.show.bind(this);
|
|
12
|
-
this.hide = this.hide.bind(this);
|
|
13
|
-
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
14
|
-
}
|
|
15
|
-
componentDidMount() {
|
|
16
|
-
document.addEventListener('mousedown', this.handleClickOutside);
|
|
17
|
-
}
|
|
18
|
-
componentWillUnmount() {
|
|
19
|
-
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
20
|
-
}
|
|
21
|
-
show() {
|
|
22
|
-
this.setState({ show: true }, () => {
|
|
23
|
-
console.log("", this.state);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
hide() {
|
|
27
|
-
this.setState({ show: false }, () => {
|
|
28
|
-
console.log("", this.state);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
handleClickOutside(event) {
|
|
32
|
-
if (this.toastRef.current && !this.toastRef.current.contains(event.target)) {
|
|
33
|
-
this.hide();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
render() {
|
|
37
|
-
if (!this.state.show) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
return (_jsxs(_Fragment, { children: [_jsxs("section", { className: Styles.ns_access_container, ref: this.toastRef, children: [_jsxs("div", { className: Styles.ns_access_content, children: [_jsx("div", { className: 'd-flex justify-content-end', children: _jsx("img", { src: CloseToast, alt: "Close", width: 18, height: 18, onClick: (e) => {
|
|
41
|
-
e.stopPropagation();
|
|
42
|
-
this.hide();
|
|
43
|
-
}, className: Styles.nsa_close_icon }) }), _jsx("div", { className: 'text-center pb-2', children: _jsx("img", { src: "https://static.namirasoft.com/image/concept/no-profile", alt: '', width: 103, height: 103, className: 'rounded-circle' }) }), _jsx("h2", { className: 'text-center', children: `Hi ${"Amir!"}` }), _jsx("h6", { className: 'text-center pb-2', children: "amir.abolhasani1368@gmail.com" })] }), _jsxs("div", { className: Styles.ns_access_account_container, children: [_jsx("div", { className: Styles.ns_access_account_info, children: _jsx("img", { src: ProfileAccount, alt: '', width: 48, height: 48, className: 'rounded-circle' }) }), _jsxs("div", { className: 'd-flex flex-column', children: [_jsx("h4", { children: `${"Amir Abolhasani"}` }), _jsx("h5", { children: "amir.bolhasani.1368@gmail.com" })] })] })] }), _jsx("div", { className: Styles.nsa_toast_background })] }));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=NSAAccess.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NSAAccess.js","sourceRoot":"","sources":["../../src/components/NSAAccess.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,UAAU,MAAM,iCAAiC,CAAC;AASzD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,SAAyC;IAG5E,YAAY,KAAqB;QAE7B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAEQ,iBAAiB;QAEtB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAEQ,oBAAoB;QAEzB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI;QAEA,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;YAE/B,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI;QAEA,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YAEhC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,KAAiB;QAEhC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAClF;YACI,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAEQ,MAAM;QAEX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EACpB;YACI,OAAO,IAAI,CAAC;SACf;QACD,OAAO,CACH,8BACI,mBAAS,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,aAC9D,eAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,aACpC,cAAK,SAAS,EAAC,4BAA4B,YACvC,cACI,GAAG,EAAE,UAAU,EACf,GAAG,EAAC,OAAO,EACX,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4CAEX,CAAC,CAAC,eAAe,EAAE,CAAC;4CACpB,IAAI,CAAC,IAAI,EAAE,CAAC;wCAChB,CAAC,EACD,SAAS,EAAE,MAAM,CAAC,cAAc,GAClC,GACA,EACN,cAAK,SAAS,EAAC,kBAAkB,YAC7B,cAAK,GAAG,EAAE,wDAAwD,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAC,gBAAgB,GAAG,GAC/H,EACN,aAAI,SAAS,EAAC,aAAa,YAAE,MAAM,OAAO,EAAE,GAAM,EAClD,aAAI,SAAS,EAAC,kBAAkB,8CAAmC,IACjE,EACN,eAAK,SAAS,EAAE,MAAM,CAAC,2BAA2B,aAC9C,cAAK,SAAS,EAAE,MAAM,CAAC,sBAAsB,YACzC,cAAK,GAAG,EAAE,cAAc,EAAE,GAAG,EAAC,EAAE,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAC,gBAAgB,GAAG,GACnF,EACN,eAAK,SAAS,EAAC,oBAAoB,aAC/B,uBAAK,GAAG,iBAAiB,EAAE,GAAM,EACjC,yDAAsC,IACpC,IACJ,IACA,EACV,cAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,GACpC,IACR,CACN,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import React, { Component, createRef } from 'react';
|
|
2
|
-
|
|
3
|
-
import Styles from './NSAAccess.module.css';
|
|
4
|
-
import ProfileAccount from '../assets/images/icon-close.png';
|
|
5
|
-
import CloseToast from '../assets/images/icon-close.png';
|
|
6
|
-
|
|
7
|
-
export interface NSAAccessProps { }
|
|
8
|
-
|
|
9
|
-
export interface NSAAccessState
|
|
10
|
-
{
|
|
11
|
-
show: boolean;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export default class NSAAccess extends Component<NSAAccessProps, NSAAccessState>{
|
|
15
|
-
private toastRef: React.RefObject<HTMLDivElement>;
|
|
16
|
-
|
|
17
|
-
constructor(props: NSAAccessProps)
|
|
18
|
-
{
|
|
19
|
-
super(props);
|
|
20
|
-
this.state = { show: false };
|
|
21
|
-
this.toastRef = createRef();
|
|
22
|
-
this.show = this.show.bind(this);
|
|
23
|
-
this.hide = this.hide.bind(this);
|
|
24
|
-
this.handleClickOutside = this.handleClickOutside.bind(this);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
override componentDidMount(): void
|
|
28
|
-
{
|
|
29
|
-
document.addEventListener('mousedown', this.handleClickOutside);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
override componentWillUnmount(): void
|
|
33
|
-
{
|
|
34
|
-
document.removeEventListener('mousedown', this.handleClickOutside);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
show()
|
|
38
|
-
{
|
|
39
|
-
this.setState({ show: true }, () =>
|
|
40
|
-
{
|
|
41
|
-
console.log("", this.state);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
hide()
|
|
46
|
-
{
|
|
47
|
-
this.setState({ show: false }, () =>
|
|
48
|
-
{
|
|
49
|
-
console.log("", this.state);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
handleClickOutside(event: MouseEvent)
|
|
54
|
-
{
|
|
55
|
-
if (this.toastRef.current && !this.toastRef.current.contains(event.target as Node))
|
|
56
|
-
{
|
|
57
|
-
this.hide();
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
override render()
|
|
62
|
-
{
|
|
63
|
-
if (!this.state.show)
|
|
64
|
-
{
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
return (
|
|
68
|
-
<>
|
|
69
|
-
<section className={Styles.ns_access_container} ref={this.toastRef}>
|
|
70
|
-
<div className={Styles.ns_access_content}>
|
|
71
|
-
<div className='d-flex justify-content-end'>
|
|
72
|
-
<img
|
|
73
|
-
src={CloseToast}
|
|
74
|
-
alt="Close"
|
|
75
|
-
width={18}
|
|
76
|
-
height={18}
|
|
77
|
-
onClick={(e) =>
|
|
78
|
-
{
|
|
79
|
-
e.stopPropagation();
|
|
80
|
-
this.hide();
|
|
81
|
-
}}
|
|
82
|
-
className={Styles.nsa_close_icon}
|
|
83
|
-
/>
|
|
84
|
-
</div>
|
|
85
|
-
<div className='text-center pb-2'>
|
|
86
|
-
<img src={"https://static.namirasoft.com/image/concept/no-profile"} alt='' width={103} height={103} className='rounded-circle' />
|
|
87
|
-
</div>
|
|
88
|
-
<h2 className='text-center'>{`Hi ${"Amir!"}`}</h2>
|
|
89
|
-
<h6 className='text-center pb-2'>amir.abolhasani1368@gmail.com</h6>
|
|
90
|
-
</div>
|
|
91
|
-
<div className={Styles.ns_access_account_container}>
|
|
92
|
-
<div className={Styles.ns_access_account_info}>
|
|
93
|
-
<img src={ProfileAccount} alt='' width={48} height={48} className='rounded-circle' />
|
|
94
|
-
</div>
|
|
95
|
-
<div className='d-flex flex-column'>
|
|
96
|
-
<h4>{`${"Amir Abolhasani"}`}</h4>
|
|
97
|
-
<h5>amir.bolhasani.1368@gmail.com</h5>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</section>
|
|
101
|
-
<div className={Styles.nsa_toast_background}>
|
|
102
|
-
</div >
|
|
103
|
-
</>
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
File without changes
|
|
File without changes
|