namirasoft-site-react 1.2.37 → 1.2.39
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/components/NSCard.js.map +1 -1
- package/dist/components/NSHeader.d.ts +1 -17
- package/dist/components/NSHeader.js +32 -40
- package/dist/components/NSHeader.js.map +1 -1
- package/dist/components/NSLayout.js +1 -0
- package/dist/components/NSLayout.js.map +1 -1
- package/dist/components/NSLayoutHeroBanner.js +1 -0
- package/dist/components/NSLayoutHeroBanner.js.map +1 -1
- package/dist/components/NSLayoutTitle.js +1 -0
- package/dist/components/NSLayoutTitle.js.map +1 -1
- package/package.json +1 -1
- package/src/components/NSCard.tsx +2 -1
- package/src/components/NSHeader.tsx +77 -81
- package/src/components/NSLayout.tsx +2 -0
- package/src/components/NSLayoutHeroBanner.tsx +2 -0
- package/src/components/NSLayoutTitle.tsx +2 -0
- package/src/components/NSLinkGreen.d.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSCard.js","sourceRoot":"","sources":["../../src/components/NSCard.tsx"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"NSCard.js","sourceRoot":"","sources":["../../src/components/NSCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,qBAAqB,CAAA;AAqBxC,MAAM,OAAO,MAAO,SAAQ,SAAyB;IAC3C,MAAM;;QAEd,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,OAAO,CACN,4BACC,iCAAS,SAAS,EAAE,MAAM,CAAC,OAAO,iBACjC,6BAAK,SAAS,EAAE,MAAM,CAAC,wBAAwB,iBAC9C,6BAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,iBACvC,2BAAI,SAAS,EAAE,MAAM,CAAC,UAAU,gBAC9B,KAAK,IACF,EACL,cAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI,KAC9D,EACN,0BAAG,SAAS,EAAE,MAAM,CAAC,gBAAgB,gBACnC,WAAW,IACT,KACC,EACL,IAAI;wBACJ,wBACC,0BAAG,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,OAAO,gBAChF,IAAI,CAAC,IAAI,IACP,GACC,KAEG,GACT,CACH,CAAC;IACH,CAAC;CACD"}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { FilterLinkRow } from 'namirasoft-api-link';
|
|
3
1
|
interface IProps {
|
|
4
2
|
scope: string;
|
|
5
3
|
name: string;
|
|
6
4
|
logo: string;
|
|
7
5
|
}
|
|
8
|
-
|
|
9
|
-
filters: FilterLinkRow[];
|
|
10
|
-
selected: FilterLinkRow | null;
|
|
11
|
-
showNavbar: boolean;
|
|
12
|
-
}
|
|
13
|
-
export declare class NSHeader extends React.Component<IProps, IState> {
|
|
14
|
-
constructor(props: IProps);
|
|
15
|
-
componentDidMount(): void;
|
|
16
|
-
private onMenuItemToggled;
|
|
17
|
-
private hasChild;
|
|
18
|
-
handleShowNavbar(): void;
|
|
19
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
private render_menu;
|
|
21
|
-
private render_menuItem;
|
|
22
|
-
}
|
|
6
|
+
export declare function NSHeader(props: IProps): import("react/jsx-runtime").JSX.Element;
|
|
23
7
|
export {};
|
|
@@ -1,61 +1,53 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as _jsx,
|
|
3
|
-
import
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
4
|
import Styles from "./NSHeader.module.css";
|
|
5
5
|
import NavDropdown from 'react-bootstrap/NavDropdown';
|
|
6
6
|
import { NamirasoftAPILinkServer } from 'namirasoft-api-link';
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
this.hasChild = this.hasChild.bind(this);
|
|
16
|
-
this.onMenuItemToggled = this.onMenuItemToggled.bind(this);
|
|
17
|
-
this.render_menu = this.render_menu.bind(this);
|
|
18
|
-
this.render_menuItem = this.render_menuItem.bind(this);
|
|
19
|
-
this.handleShowNavbar = this.handleShowNavbar.bind(this);
|
|
20
|
-
}
|
|
21
|
-
componentDidMount() {
|
|
7
|
+
export function NSHeader(props) {
|
|
8
|
+
let [state, setState] = useState({
|
|
9
|
+
filters: [],
|
|
10
|
+
selected: null,
|
|
11
|
+
showNavbar: false
|
|
12
|
+
});
|
|
13
|
+
useEffect(() => {
|
|
22
14
|
let server = new NamirasoftAPILinkServer(console.error);
|
|
23
|
-
server.filter.GetFilters(
|
|
24
|
-
|
|
15
|
+
server.filter.GetFilters(props.scope, props.name).then(filters => {
|
|
16
|
+
setState({ filters });
|
|
25
17
|
});
|
|
26
|
-
}
|
|
27
|
-
onMenuItemToggled(checked, selected) {
|
|
18
|
+
});
|
|
19
|
+
function onMenuItemToggled(checked, selected) {
|
|
28
20
|
if (checked)
|
|
29
|
-
|
|
21
|
+
setState({ selected });
|
|
30
22
|
}
|
|
31
|
-
hasChild(id) {
|
|
32
|
-
|
|
23
|
+
function hasChild(id) {
|
|
24
|
+
if (state.filters)
|
|
25
|
+
return state.filters.filter(f => f.parent_id === id).length > 0;
|
|
26
|
+
return false;
|
|
33
27
|
}
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
function toggleNavbar() {
|
|
29
|
+
setState({ showNavbar: !state.showNavbar });
|
|
36
30
|
}
|
|
37
|
-
|
|
38
|
-
return (_jsx("nav", Object.assign({ className: Styles.ns_navbar }, { children: _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_parent_content} container` }, { children: [_jsx("img", { src: this.props.logo, alt: "Logo", width: 48, height: 48 }), _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_content} ` }, { children: [_jsx("div", Object.assign({ className: `${Styles.ns_navbar_elements} ${this.state.showNavbar && Styles.ns_navbar_active}` }, { children: this.render_menu(0, null) })), _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_login_status}` }, { children: [_jsx("span", Object.assign({ className: `${Styles.ns_navbar_usersname}` }, { children: "name" })), _jsx("img", { src: '../assets/images/exit.svg', alt: "Exit", width: 20, height: 20 })] })), _jsx("div", Object.assign({ className: Styles.ns_navbar_menu_icon, onClick: this.handleShowNavbar }, { children: _jsx("img", { src: '../assets/images/menu.svg', alt: "Menu", width: 19, height: 17 }) }))] }))] })) })));
|
|
39
|
-
}
|
|
40
|
-
render_menu(level, parent_id) {
|
|
31
|
+
function render_menu(level, parent_id) {
|
|
41
32
|
var _a;
|
|
42
|
-
let fs = (_a =
|
|
43
|
-
|
|
33
|
+
let fs = (_a = state.filters) === null || _a === void 0 ? void 0 : _a.filter(f => f.parent_id === parent_id);
|
|
34
|
+
if (fs)
|
|
35
|
+
return (_jsx("div", Object.assign({ className: `me-auto nav ${Styles.ns_navbar_items_container}` }, { children: (fs === null || fs === void 0 ? void 0 : fs.map(f => render_menuItem(level, f))) })));
|
|
36
|
+
return _jsx(_Fragment, {});
|
|
44
37
|
}
|
|
45
|
-
render_menuItem(level, filter) {
|
|
38
|
+
function render_menuItem(level, filter) {
|
|
46
39
|
var _a;
|
|
47
|
-
if (
|
|
40
|
+
if (hasChild(filter.id)) {
|
|
48
41
|
let sub_menus = _jsx(_Fragment, {});
|
|
49
42
|
if (level === 0)
|
|
50
|
-
if (
|
|
43
|
+
if (state.selected) {
|
|
51
44
|
sub_menus =
|
|
52
|
-
_jsx("div", Object.assign({ id: `dropdown_items${filter.id}` }, { children:
|
|
45
|
+
_jsx("div", Object.assign({ id: `dropdown_items${filter.id}` }, { children: render_menu(1, state.selected.id) }));
|
|
53
46
|
}
|
|
54
|
-
return (_jsx(_Fragment, { children: _jsx(NavDropdown, Object.assign({ onToggle: (checked) =>
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return (_jsx("a", Object.assign({ className: `${Styles.ns_navbar_items_link} ${level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item}`, href: (_a = filter.link) === null || _a === void 0 ? void 0 : _a.url }, { children: filter.name })));
|
|
47
|
+
return (_jsx(_Fragment, { children: _jsx(NavDropdown, Object.assign({ onToggle: (checked) => onMenuItemToggled(checked, filter), className: level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item, title: filter.name, id: `dropdown_parent${filter.id}` }, { children: sub_menus })) }));
|
|
58
48
|
}
|
|
49
|
+
return (_jsx("a", Object.assign({ className: `${Styles.ns_navbar_items_link} ${level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item}`, href: (_a = filter.link) === null || _a === void 0 ? void 0 : _a.url }, { children: filter.name })));
|
|
59
50
|
}
|
|
51
|
+
return (_jsx("nav", Object.assign({ className: Styles.ns_navbar }, { children: _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_parent_content} container` }, { children: [_jsx("img", { src: props.logo, alt: "Logo", width: 48, height: 48 }), _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_content} ` }, { children: [_jsx("div", Object.assign({ className: `${Styles.ns_navbar_elements} ${state.showNavbar && Styles.ns_navbar_active}` }, { children: render_menu(0, null) })), _jsxs("div", Object.assign({ className: `${Styles.ns_navbar_login_status}` }, { children: [_jsx("span", Object.assign({ className: `${Styles.ns_navbar_usersname}` }, { children: "name" })), _jsx("img", { src: '../assets/images/exit.svg', alt: "Exit", width: 20, height: 20 })] })), _jsx("div", Object.assign({ className: Styles.ns_navbar_menu_icon, onClick: toggleNavbar }, { children: _jsx("img", { src: '../assets/images/menu.svg', alt: "Menu", width: 19, height: 17 }) }))] }))] })) })));
|
|
60
52
|
}
|
|
61
53
|
//# sourceMappingURL=NSHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSHeader.js","sourceRoot":"","sources":["../../src/components/NSHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,
|
|
1
|
+
{"version":3,"file":"NSHeader.js","sourceRoot":"","sources":["../../src/components/NSHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSLayout.js","sourceRoot":"","sources":["../../src/components/NSLayout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NSLayout.js","sourceRoot":"","sources":["../../src/components/NSLayout.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAStC,MAAM,UAAU,QAAQ,CAAC,KAAa;IAErC,OAAO,CACN,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY,iBAClC,+BAAQ,SAAS,EAAE,MAAM,CAAC,SAAS,gBAClC,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,IACxD,EACT,6BAAM,SAAS,EAAC,+BAA+B,gBAC7C,KAAK,CAAC,QAAQ,IACT,EACP,+BAAQ,SAAS,EAAE,MAAM,CAAC,SAAS,gBAClC,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,IACxD,KACH,CACP,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSLayoutHeroBanner.js","sourceRoot":"","sources":["../../src/components/NSLayoutHeroBanner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NSLayoutHeroBanner.js","sourceRoot":"","sources":["../../src/components/NSLayoutHeroBanner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,MAAM,MAAM,iCAAiC,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAcxC,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAE/C,OAAO,CACN,MAAC,QAAQ,kBAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,iBAE7C,4BAAK,SAAS,EAAE,MAAM,CAAC,WAAW,gBAEjC,gCAAS,SAAS,EAAE,MAAM,CAAC,WAAW,gBACrC,4BAAK,SAAS,EAAC,iCAAiC,gBAC/C,6BAAK,SAAS,EAAC,iEAAiE,iBAE/E,iCAAS,SAAS,EAAE,iCAAiC,MAAM,CAAC,mBAAmB,EAAE,iBAChF,2BAAI,SAAS,EAAC,0CAA0C,gBACtD,KAAK,CAAC,KAAK,IACR,EACL,0BAAG,SAAS,EAAC,4BAA4B,gBACvC,KAAK,CAAC,WAAW,IACf,EACJ,0BAAG,SAAS,EAAC,mBAAmB,gBAC9B,KAAK,CAAC,gBAAgB,IACpB,EAEJ,6BAAK,SAAS,EAAC,sBAAsB,iBACpC,KAAC,IAAI,kBAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gCAEpD,EAEP,KAAC,IAAI,kBAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4CAE9B,KAEF,KACG,EAEV,4BAAK,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,SAAS,EAAE,sCAAsC,MAAM,CAAC,aAAa,EAAE,gBAC/H,cAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,GAAQ,IAC3C,EAEN,4BAAK,SAAS,EAAE,mBAAmB,MAAM,CAAC,kBAAkB,EAAE,gBAC7D,cACC,GAAG,EAAE,KAAK,CAAC,MAAM,EACjB,GAAG,EAAC,EAAE,GACL,IACG,EAEN,6BAAK,SAAS,EAAC,6BAA6B,iBAC3C,KAAC,IAAI,kBAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gCAEpD,EAEP,KAAC,IAAI,kBAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,4CAE9B,KAEF,KACD,IACD,IACG,IACL,EAIL,KAAK,CAAC,QAAQ,KACL,CACX,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NSLayoutTitle.js","sourceRoot":"","sources":["../../src/components/NSLayoutTitle.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NSLayoutTitle.js","sourceRoot":"","sources":["../../src/components/NSLayoutTitle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWtC,MAAM,UAAU,aAAa,CAAC,KAAa;IAE1C,OAAO,CACN,MAAC,QAAQ,kBAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,iBAC7C,0BACC,2BAAI,SAAS,EAAC,wBAAwB,gBAAE,KAAK,CAAC,KAAK,IAAM,EACzD,0BAAG,SAAS,EAAC,6BAA6B,gBAAE,KAAK,CAAC,WAAW,IAAK,IAC7D,EACL,KAAK,CAAC,QAAQ,KACL,CACX,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
4
|
import Styles from "./NSHeader.module.css";
|
|
5
5
|
|
|
6
6
|
import NavDropdown from 'react-bootstrap/NavDropdown';
|
|
@@ -15,109 +15,73 @@ interface IProps
|
|
|
15
15
|
|
|
16
16
|
interface IState
|
|
17
17
|
{
|
|
18
|
-
filters
|
|
19
|
-
selected
|
|
20
|
-
showNavbar
|
|
18
|
+
filters?: FilterLinkRow[];
|
|
19
|
+
selected?: FilterLinkRow | null;
|
|
20
|
+
showNavbar?: boolean;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.hasChild = this.hasChild.bind(this);
|
|
33
|
-
this.onMenuItemToggled = this.onMenuItemToggled.bind(this);
|
|
34
|
-
this.render_menu = this.render_menu.bind(this);
|
|
35
|
-
this.render_menuItem = this.render_menuItem.bind(this);
|
|
36
|
-
this.handleShowNavbar = this.handleShowNavbar.bind(this);
|
|
37
|
-
}
|
|
38
|
-
override componentDidMount(): void
|
|
23
|
+
export function NSHeader(props: IProps)
|
|
24
|
+
{
|
|
25
|
+
let [state, setState] = useState<IState>({
|
|
26
|
+
filters: [],
|
|
27
|
+
selected: null,
|
|
28
|
+
showNavbar: false
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
useEffect(() =>
|
|
39
32
|
{
|
|
40
33
|
let server = new NamirasoftAPILinkServer(console.error);
|
|
41
|
-
server.filter.GetFilters(
|
|
34
|
+
server.filter.GetFilters(props.scope, props.name).then(filters =>
|
|
42
35
|
{
|
|
43
|
-
|
|
36
|
+
setState({ filters });
|
|
44
37
|
});
|
|
45
|
-
}
|
|
46
|
-
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
function onMenuItemToggled(checked: boolean, selected: FilterLinkRow)
|
|
47
41
|
{
|
|
48
42
|
if (checked)
|
|
49
|
-
|
|
43
|
+
setState({ selected });
|
|
50
44
|
}
|
|
51
|
-
|
|
45
|
+
function hasChild(id: number): boolean
|
|
52
46
|
{
|
|
53
|
-
|
|
47
|
+
if (state.filters)
|
|
48
|
+
return state.filters.filter(f => f.parent_id === id).length > 0;
|
|
49
|
+
return false;
|
|
54
50
|
}
|
|
55
|
-
|
|
51
|
+
function toggleNavbar(): void
|
|
56
52
|
{
|
|
57
|
-
|
|
53
|
+
setState({ showNavbar: !state.showNavbar });
|
|
58
54
|
}
|
|
59
|
-
|
|
55
|
+
function render_menu(level: number, parent_id: number | null)
|
|
60
56
|
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
alt="Logo"
|
|
67
|
-
width={48}
|
|
68
|
-
height={48}
|
|
69
|
-
/>
|
|
70
|
-
<div className={`${Styles.ns_navbar_content} `} >
|
|
71
|
-
<div className={`${Styles.ns_navbar_elements} ${this.state.showNavbar && Styles.ns_navbar_active}`}>
|
|
72
|
-
{this.render_menu(0, null)}
|
|
73
|
-
</div>
|
|
74
|
-
<div className={`${Styles.ns_navbar_login_status}`}>
|
|
75
|
-
<span className={`${Styles.ns_navbar_usersname}`}>name</span>
|
|
76
|
-
<img src='../assets/images/exit.svg'
|
|
77
|
-
alt="Exit"
|
|
78
|
-
width={20}
|
|
79
|
-
height={20}
|
|
80
|
-
/>
|
|
81
|
-
</div>
|
|
82
|
-
<div className={Styles.ns_navbar_menu_icon} onClick={this.handleShowNavbar}>
|
|
83
|
-
<img
|
|
84
|
-
src='../assets/images/menu.svg'
|
|
85
|
-
alt="Menu"
|
|
86
|
-
width={19}
|
|
87
|
-
height={17}
|
|
88
|
-
/>
|
|
89
|
-
</div>
|
|
90
|
-
</div>
|
|
57
|
+
let fs: FilterLinkRow[] | undefined = state.filters?.filter(f => f.parent_id === parent_id);
|
|
58
|
+
if (fs)
|
|
59
|
+
return (
|
|
60
|
+
<div className={`me-auto nav ${Styles.ns_navbar_items_container}`} >
|
|
61
|
+
{(fs?.map(f => render_menuItem(level, f)))}
|
|
91
62
|
</div>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
private render_menu(level: number, parent_id: number | null)
|
|
96
|
-
{
|
|
97
|
-
let fs: FilterLinkRow[] = this.state.filters?.filter(f => f.parent_id === parent_id);
|
|
98
|
-
return (
|
|
99
|
-
<div className={`me-auto nav ${Styles.ns_navbar_items_container}`} >
|
|
100
|
-
{(fs?.map(f => this.render_menuItem(level, f)))}
|
|
101
|
-
</div>
|
|
102
|
-
);
|
|
63
|
+
);
|
|
64
|
+
return <></>;
|
|
103
65
|
}
|
|
104
|
-
|
|
66
|
+
function render_menuItem(level: number, filter: FilterLinkRow)
|
|
105
67
|
{
|
|
106
|
-
if (
|
|
68
|
+
if (hasChild(filter.id))
|
|
107
69
|
{
|
|
108
70
|
let sub_menus = <></>;
|
|
109
71
|
if (level === 0)
|
|
110
|
-
if (
|
|
72
|
+
if (state.selected)
|
|
111
73
|
{
|
|
112
74
|
sub_menus =
|
|
113
75
|
<div
|
|
114
76
|
id={`dropdown_items${filter.id}`}>
|
|
115
|
-
{
|
|
77
|
+
{
|
|
78
|
+
render_menu(1, state.selected.id)
|
|
79
|
+
}
|
|
116
80
|
</div >
|
|
117
81
|
}
|
|
118
82
|
return (<>
|
|
119
83
|
<NavDropdown
|
|
120
|
-
onToggle={(checked) =>
|
|
84
|
+
onToggle={(checked) => onMenuItemToggled(checked, filter)}
|
|
121
85
|
className={level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item}
|
|
122
86
|
title={filter.name}
|
|
123
87
|
id={`dropdown_parent${filter.id}`}>
|
|
@@ -125,11 +89,43 @@ export class NSHeader extends React.Component<IProps, IState> {
|
|
|
125
89
|
</NavDropdown >
|
|
126
90
|
</>
|
|
127
91
|
);
|
|
128
|
-
} else
|
|
129
|
-
{
|
|
130
|
-
return (
|
|
131
|
-
<a className={`${Styles.ns_navbar_items_link} ${level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item}`} href={filter.link?.url}>{filter.name}</a>
|
|
132
|
-
);
|
|
133
92
|
}
|
|
93
|
+
return (
|
|
94
|
+
<a className={`${Styles.ns_navbar_items_link} ${level === 0 ? Styles.ns_navbar_first_level_item : Styles.ns_navbar_second_level_item}`} href={filter.link?.url}>{filter.name}</a>
|
|
95
|
+
);
|
|
134
96
|
}
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<nav className={Styles.ns_navbar}>
|
|
100
|
+
<div className={`${Styles.ns_navbar_parent_content} container`}>
|
|
101
|
+
<img
|
|
102
|
+
src={props.logo}
|
|
103
|
+
alt="Logo"
|
|
104
|
+
width={48}
|
|
105
|
+
height={48}
|
|
106
|
+
/>
|
|
107
|
+
<div className={`${Styles.ns_navbar_content} `} >
|
|
108
|
+
<div className={`${Styles.ns_navbar_elements} ${state.showNavbar && Styles.ns_navbar_active}`}>
|
|
109
|
+
{render_menu(0, null)}
|
|
110
|
+
</div>
|
|
111
|
+
<div className={`${Styles.ns_navbar_login_status}`}>
|
|
112
|
+
<span className={`${Styles.ns_navbar_usersname}`}>name</span>
|
|
113
|
+
<img src='../assets/images/exit.svg'
|
|
114
|
+
alt="Exit"
|
|
115
|
+
width={20}
|
|
116
|
+
height={20}
|
|
117
|
+
/>
|
|
118
|
+
</div>
|
|
119
|
+
<div className={Styles.ns_navbar_menu_icon} onClick={toggleNavbar}>
|
|
120
|
+
<img
|
|
121
|
+
src='../assets/images/menu.svg'
|
|
122
|
+
alt="Menu"
|
|
123
|
+
width={19}
|
|
124
|
+
height={17}
|
|
125
|
+
/>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</nav>
|
|
130
|
+
);
|
|
135
131
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface IProps {
|
|
3
|
-
title: string;
|
|
4
|
-
link: () => void;
|
|
5
|
-
}
|
|
6
|
-
interface IState {
|
|
7
|
-
}
|
|
8
|
-
export declare class NSLinkGreen extends React.Component<IProps, IState> {
|
|
9
|
-
render(): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
}
|
|
11
|
-
export {};
|