namirasoft-site-react 1.5.1 → 1.5.2
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/NSListMenu.d.ts +7 -0
- package/dist/components/NSListMenu.js +64 -0
- package/dist/components/NSListMenu.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
- package/src/components/NSListMenu.tsx +106 -0
- package/src/main.ts +1 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { NamirasoftAPILinkServer } from "namirasoft-api-link";
|
|
3
|
+
import { EnvService } from "namirasoft-core";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { NSCard } from "./NSCard";
|
|
6
|
+
import { NSSection } from "./NSSection";
|
|
7
|
+
export function NSListMenu(props) {
|
|
8
|
+
const [state, setState] = useState({ filters: [] });
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
var _a;
|
|
11
|
+
let REACT_APP_BASE_URL_API_LINK = new EnvService("REACT_APP_BASE_URL_API_LINK", true).getString();
|
|
12
|
+
let server = new NamirasoftAPILinkServer(REACT_APP_BASE_URL_API_LINK, (_a = props.onError) !== null && _a !== void 0 ? _a : (() => { }));
|
|
13
|
+
server.filter.ListFilterLinks(props.scope, props.name, null, null, null, []).then((filters) => {
|
|
14
|
+
setState({ filters: filters.rows });
|
|
15
|
+
}).catch(() => { });
|
|
16
|
+
}, []);
|
|
17
|
+
const pathOf = (url) => {
|
|
18
|
+
if (!url)
|
|
19
|
+
return "";
|
|
20
|
+
try {
|
|
21
|
+
return new URL(url).pathname.replace(/\/+$/, "").toLowerCase();
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return url.replace(/[?#].*$/, "").replace(/\/+$/, "").toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const baseOf = (path) => path.replace(/\/[^/]*$/, "");
|
|
28
|
+
const getMenuItems = () => {
|
|
29
|
+
var _a, _b, _c, _d, _e;
|
|
30
|
+
let loggedin = (_b = (_a = props.isLoggedIn) === null || _a === void 0 ? void 0 : _a.call(props)) !== null && _b !== void 0 ? _b : false;
|
|
31
|
+
let ans = (_d = (_c = state.filters) === null || _c === void 0 ? void 0 : _c.filter(f => {
|
|
32
|
+
if (f.link) {
|
|
33
|
+
if (loggedin)
|
|
34
|
+
return f.link.private;
|
|
35
|
+
return f.link.public;
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
})) !== null && _d !== void 0 ? _d : [];
|
|
39
|
+
ans = ans.filter(f => { var _a; return (_a = f.link) === null || _a === void 0 ? void 0 : _a.url; });
|
|
40
|
+
let listedBases = new Set();
|
|
41
|
+
for (let f of ans) {
|
|
42
|
+
let path = pathOf((_e = f.link) === null || _e === void 0 ? void 0 : _e.url);
|
|
43
|
+
if (path.endsWith("/list"))
|
|
44
|
+
listedBases.add(baseOf(path));
|
|
45
|
+
}
|
|
46
|
+
ans = ans.filter(f => {
|
|
47
|
+
var _a;
|
|
48
|
+
let path = pathOf((_a = f.link) === null || _a === void 0 ? void 0 : _a.url);
|
|
49
|
+
if (listedBases.has(baseOf(path)))
|
|
50
|
+
return path.endsWith("/list");
|
|
51
|
+
return true;
|
|
52
|
+
});
|
|
53
|
+
ans.sort((a, b) => a.order - b.order);
|
|
54
|
+
return ans;
|
|
55
|
+
};
|
|
56
|
+
let items = getMenuItems();
|
|
57
|
+
return (_jsx(NSSection, { style: { gap: "16px" }, children: items.map((filter) => {
|
|
58
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
59
|
+
let title = (_c = (_a = filter.name) !== null && _a !== void 0 ? _a : (_b = filter.link) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : "";
|
|
60
|
+
let logo = (_f = (_d = filter.logo) !== null && _d !== void 0 ? _d : (_e = filter.link) === null || _e === void 0 ? void 0 : _e.logo) !== null && _f !== void 0 ? _f : "";
|
|
61
|
+
return (_jsx(NSCard, { link: { href: (_h = (_g = filter.link) === null || _g === void 0 ? void 0 : _g.url) !== null && _h !== void 0 ? _h : "" }, title: title, description: (_k = (_j = filter.link) === null || _j === void 0 ? void 0 : _j.description) !== null && _k !== void 0 ? _k : "", image: logo ? { src: logo, alt: title } : undefined }, filter.id));
|
|
62
|
+
}) }));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=NSListMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NSListMenu.js","sourceRoot":"","sources":["../../src/components/NSListMenu.tsx"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ export * from "./components/NSLinkBlue";
|
|
|
86
86
|
export * from "./components/NSLinkGreen";
|
|
87
87
|
export * from "./components/NSLinkRed";
|
|
88
88
|
export * from "./components/NSListGrouped";
|
|
89
|
+
export * from "./components/NSListMenu";
|
|
89
90
|
export * from "./components/NSListProduct";
|
|
90
91
|
export * from "./components/NSLoading";
|
|
91
92
|
export * from "./components/NSMenuAction";
|
package/dist/main.js
CHANGED
|
@@ -88,6 +88,7 @@ export * from "./components/NSLinkBlue";
|
|
|
88
88
|
export * from "./components/NSLinkGreen";
|
|
89
89
|
export * from "./components/NSLinkRed";
|
|
90
90
|
export * from "./components/NSListGrouped";
|
|
91
|
+
export * from "./components/NSListMenu";
|
|
91
92
|
export * from "./components/NSListProduct";
|
|
92
93
|
export * from "./components/NSLoading";
|
|
93
94
|
export * from "./components/NSMenuAction";
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { NamirasoftAPILinkServer, FilterLinkFullRow } from "namirasoft-api-link";
|
|
2
|
+
import { EnvService } from "namirasoft-core";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { NSCard } from "./NSCard";
|
|
5
|
+
import { NSSection } from "./NSSection";
|
|
6
|
+
|
|
7
|
+
export interface NSListMenuProps
|
|
8
|
+
{
|
|
9
|
+
scope: string;
|
|
10
|
+
name: string;
|
|
11
|
+
isLoggedIn?: () => boolean;
|
|
12
|
+
onError?: (error: Error | string) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface NSListMenuState
|
|
16
|
+
{
|
|
17
|
+
filters: FilterLinkFullRow[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function NSListMenu(props: NSListMenuProps)
|
|
21
|
+
{
|
|
22
|
+
const [state, setState] = useState<NSListMenuState>({ filters: [] });
|
|
23
|
+
|
|
24
|
+
useEffect(() =>
|
|
25
|
+
{
|
|
26
|
+
let REACT_APP_BASE_URL_API_LINK = new EnvService("REACT_APP_BASE_URL_API_LINK", true).getString();
|
|
27
|
+
let server = new NamirasoftAPILinkServer(REACT_APP_BASE_URL_API_LINK, props.onError ?? (() => { }));
|
|
28
|
+
server.filter.ListFilterLinks(props.scope, props.name, null, null, null, []).then((filters) =>
|
|
29
|
+
{
|
|
30
|
+
setState({ filters: filters.rows });
|
|
31
|
+
}).catch(() => { });
|
|
32
|
+
// eslint-disable-next-line
|
|
33
|
+
}, []);
|
|
34
|
+
|
|
35
|
+
const pathOf = (url: string | null | undefined): string =>
|
|
36
|
+
{
|
|
37
|
+
if (!url)
|
|
38
|
+
return "";
|
|
39
|
+
try
|
|
40
|
+
{
|
|
41
|
+
return new URL(url).pathname.replace(/\/+$/, "").toLowerCase();
|
|
42
|
+
}
|
|
43
|
+
catch
|
|
44
|
+
{
|
|
45
|
+
return url.replace(/[?#].*$/, "").replace(/\/+$/, "").toLowerCase();
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const baseOf = (path: string): string => path.replace(/\/[^/]*$/, "");
|
|
49
|
+
const getMenuItems = (): FilterLinkFullRow[] =>
|
|
50
|
+
{
|
|
51
|
+
let loggedin = props.isLoggedIn?.() ?? false;
|
|
52
|
+
let ans = state.filters?.filter(f =>
|
|
53
|
+
{
|
|
54
|
+
if (f.link)
|
|
55
|
+
{
|
|
56
|
+
if (loggedin)
|
|
57
|
+
return f.link.private;
|
|
58
|
+
return f.link.public;
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
}) ?? [];
|
|
62
|
+
|
|
63
|
+
ans = ans.filter(f => f.link?.url);
|
|
64
|
+
|
|
65
|
+
let listedBases = new Set<string>();
|
|
66
|
+
for (let f of ans)
|
|
67
|
+
{
|
|
68
|
+
let path = pathOf(f.link?.url);
|
|
69
|
+
if (path.endsWith("/list"))
|
|
70
|
+
listedBases.add(baseOf(path));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
ans = ans.filter(f =>
|
|
74
|
+
{
|
|
75
|
+
let path = pathOf(f.link?.url);
|
|
76
|
+
if (listedBases.has(baseOf(path)))
|
|
77
|
+
return path.endsWith("/list");
|
|
78
|
+
return true;
|
|
79
|
+
});
|
|
80
|
+
ans.sort((a, b) => a.order - b.order);
|
|
81
|
+
return ans;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
let items = getMenuItems();
|
|
85
|
+
|
|
86
|
+
return (
|
|
87
|
+
<NSSection style={{ gap: "16px" }}>
|
|
88
|
+
{
|
|
89
|
+
items.map((filter: FilterLinkFullRow) =>
|
|
90
|
+
{
|
|
91
|
+
let title = filter.name ?? filter.link?.name ?? "";
|
|
92
|
+
let logo = filter.logo ?? filter.link?.logo ?? "";
|
|
93
|
+
return (
|
|
94
|
+
<NSCard
|
|
95
|
+
key={filter.id}
|
|
96
|
+
link={{ href: filter.link?.url ?? "" }}
|
|
97
|
+
title={title}
|
|
98
|
+
description={filter.link?.description ?? ""}
|
|
99
|
+
image={logo ? { src: logo, alt: title } : undefined}
|
|
100
|
+
/>
|
|
101
|
+
);
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
</NSSection>
|
|
105
|
+
);
|
|
106
|
+
}
|