admin_lsac 1.2.8 → 1.2.9
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 +3 -3
- package/dist/cjs/App.js +3 -3
- package/dist/cjs/components/Page.js +23 -8
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/utils/websockets.js +22 -0
- package/dist/components/Page.js +23 -8
- package/dist/esm/App.js +3 -3
- package/dist/esm/components/Page.js +23 -8
- package/dist/esm/index.js +3 -3
- package/dist/esm/utils/websockets.js +15 -0
- package/dist/index.js +2 -2
- package/dist/utils/websockets.js +22 -0
- package/package.json +2 -1
- package/src/App.tsx +50 -110
- package/src/components/GenericForm.tsx +308 -304
- package/src/components/Page.tsx +243 -223
- package/src/index.tsx +20 -20
- package/src/pages/event.ts +93 -93
- package/src/pages/page.ts +336 -336
- package/src/schema/schema.config.ts +8 -8
- package/src/schema/schema.ts +63 -63
- package/src/utils/websockets.tsx +17 -0
package/dist/App.js
CHANGED
|
@@ -5,8 +5,8 @@ var react_1 = require("@chakra-ui/react");
|
|
|
5
5
|
var react_router_dom_1 = require("react-router-dom");
|
|
6
6
|
var Page_1 = require("./components/Page");
|
|
7
7
|
var Page_2 = require("./components/Page");
|
|
8
|
-
function
|
|
8
|
+
function App(_a) {
|
|
9
9
|
var pages = _a.pages, basePath = _a.basePath;
|
|
10
|
-
return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, Page_2.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath }) })) : null] }) }) }));
|
|
10
|
+
return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, Page_2.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath, apiURL: "http://localhost:3001" }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath, apiURL: "http://localhost:3001" }) })) : null] }) }) }));
|
|
11
11
|
}
|
|
12
|
-
exports.default =
|
|
12
|
+
exports.default = App;
|
package/dist/cjs/App.js
CHANGED
|
@@ -5,8 +5,8 @@ var react_1 = require("@chakra-ui/react");
|
|
|
5
5
|
var react_router_dom_1 = require("react-router-dom");
|
|
6
6
|
var Page_1 = require("./components/Page");
|
|
7
7
|
var Page_2 = require("./components/Page");
|
|
8
|
-
function
|
|
8
|
+
function App(_a) {
|
|
9
9
|
var pages = _a.pages, basePath = _a.basePath;
|
|
10
|
-
return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, Page_2.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath }) })) : null] }) }) }));
|
|
10
|
+
return ((0, jsx_runtime_1.jsx)(react_1.ChakraProvider, { children: (0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { children: (0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [pages.map(function (page) { return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/").concat((0, Page_2.pageToUrl)(page)), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: page, basePath: basePath, apiURL: "http://localhost:3001" }) })); }), pages[0] ? ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "".concat(basePath, "/*"), element: (0, jsx_runtime_1.jsx)(Page_1.AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath, apiURL: "http://localhost:3001" }) })) : null] }) }) }));
|
|
11
11
|
}
|
|
12
|
-
exports.default =
|
|
12
|
+
exports.default = App;
|
|
@@ -15,6 +15,8 @@ var material_react_table_1 = require("material-react-table");
|
|
|
15
15
|
var export_to_csv_1 = require("export-to-csv");
|
|
16
16
|
var sweetalert2_1 = __importDefault(require("sweetalert2"));
|
|
17
17
|
var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
|
|
18
|
+
var socket_io_client_1 = require("socket.io-client");
|
|
19
|
+
var websockets_1 = require("../utils/websockets");
|
|
18
20
|
function pageToUrl(page) {
|
|
19
21
|
return "".concat(page.name.toLowerCase().replace(" ", "_"));
|
|
20
22
|
}
|
|
@@ -63,17 +65,31 @@ function exportToCSV(data, filename) {
|
|
|
63
65
|
}
|
|
64
66
|
function AdminPage(_a) {
|
|
65
67
|
var _b;
|
|
66
|
-
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath;
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
var
|
|
68
|
+
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath, _c = _a.apiURL, apiURL = _c === void 0 ? '' : _c;
|
|
69
|
+
var _d = (0, react_3.useDisclosure)(), isOpen = _d.isOpen, onOpen = _d.onOpen, onClose = _d.onClose;
|
|
70
|
+
var _e = (0, react_1.useState)({}), selectedAction = _e[0], setSelectedAction = _e[1];
|
|
71
|
+
var _f = (0, react_1.useState)([]), data = _f[0], setData = _f[1];
|
|
72
|
+
var _g = (0, react_1.useState)([]), displayData = _g[0], setDisplayData = _g[1];
|
|
73
|
+
var _h = (0, react_1.useState)(), rowId = _h[0], setRowId = _h[1];
|
|
74
|
+
var _j = (0, react_1.useState)(false), refetch = _j[0], setRefetch = _j[1];
|
|
75
|
+
var _k = (0, react_1.useState)(socket_io_client_1.io), socket = _k[0], setSocket = _k[1];
|
|
76
|
+
(0, websockets_1.newSocket)(setSocket, apiURL);
|
|
72
77
|
(0, react_1.useEffect)(function () {
|
|
73
78
|
selectedPage.getRequest().then(function (resArray) {
|
|
74
79
|
setData(resArray);
|
|
80
|
+
setRefetch(false);
|
|
75
81
|
});
|
|
76
|
-
}, []);
|
|
82
|
+
}, [refetch]); // Do not remove 'refetch' from here !!!
|
|
83
|
+
(0, react_1.useEffect)(function () {
|
|
84
|
+
socket.on("updateData", function (message) {
|
|
85
|
+
console.log("Message emitted from socket: " + message);
|
|
86
|
+
setRefetch(true);
|
|
87
|
+
var rowActionsMenu = document.querySelector(".MuiPaper-root.MuiPopover-paper.MuiMenu-paper");
|
|
88
|
+
if (rowActionsMenu) {
|
|
89
|
+
rowActionsMenu.remove();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}, [socket, selectedPage]);
|
|
77
93
|
(0, react_1.useEffect)(function () {
|
|
78
94
|
setDisplayData(data.map(function (table_data) {
|
|
79
95
|
return selectedPage.tableFields.map(function (field) { return field.access(table_data); });
|
|
@@ -98,7 +114,6 @@ function AdminPage(_a) {
|
|
|
98
114
|
} }) }), (0, jsx_runtime_1.jsxs)(react_3.Modal, { size: "6xl", isOpen: isOpen, onClose: onClose, children: [(0, jsx_runtime_1.jsx)(react_3.ModalOverlay, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalContent, { children: [(0, jsx_runtime_1.jsx)(react_3.ModalHeader, { children: selectedAction.name }), (0, jsx_runtime_1.jsx)(react_3.ModalCloseButton, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalBody, { children: [selectedAction.fields && ((_b = selectedAction.fields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? ((0, jsx_runtime_1.jsx)(GenericForm_1.GenericForm, { action: selectedAction, onClose: onClose, rowId: rowId })) : ((0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "blue", mr: 3, onClick: function () {
|
|
99
115
|
selectedAction.onSubmit(rowId);
|
|
100
116
|
onClose();
|
|
101
|
-
window.location.reload();
|
|
102
117
|
}, children: "Confirm Action" })), (0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "red", mr: 3, onClick: onClose, children: "Close" })] })] })] })] }));
|
|
103
118
|
}
|
|
104
119
|
exports.AdminPage = AdminPage;
|
package/dist/cjs/index.js
CHANGED
|
@@ -9,9 +9,9 @@ var client_1 = __importDefault(require("react-dom/client"));
|
|
|
9
9
|
require("./index.css");
|
|
10
10
|
var App_1 = __importDefault(require("./App"));
|
|
11
11
|
var reportWebVitals_1 = __importDefault(require("./reportWebVitals"));
|
|
12
|
-
var
|
|
12
|
+
var schema_config_1 = require("./schema/schema.config");
|
|
13
13
|
var root = client_1.default.createRoot(document.getElementById("root"));
|
|
14
|
-
root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages:
|
|
14
|
+
root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages: schema_config_1.pages, basePath: "" }) }));
|
|
15
15
|
// If you want to start measuring performance in your app, pass a function
|
|
16
16
|
// to log results (for example: reportWebVitals(console.log))
|
|
17
17
|
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.newSocket = void 0;
|
|
7
|
+
var socket_io_client_1 = __importDefault(require("socket.io-client"));
|
|
8
|
+
var react_1 = require("react");
|
|
9
|
+
var Socket = function (setSocket, apiURL) {
|
|
10
|
+
(0, react_1.useEffect)(function () {
|
|
11
|
+
var socketRef = (0, socket_io_client_1.default)(apiURL, {
|
|
12
|
+
transports: ["websocket"],
|
|
13
|
+
});
|
|
14
|
+
setSocket(socketRef);
|
|
15
|
+
return function () {
|
|
16
|
+
socketRef.removeAllListeners();
|
|
17
|
+
socketRef.disconnect();
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
};
|
|
21
|
+
var newSocket = function (setSocket, apiURL) { return Socket(setSocket, apiURL); };
|
|
22
|
+
exports.newSocket = newSocket;
|
package/dist/components/Page.js
CHANGED
|
@@ -15,6 +15,8 @@ var material_react_table_1 = require("material-react-table");
|
|
|
15
15
|
var export_to_csv_1 = require("export-to-csv");
|
|
16
16
|
var sweetalert2_1 = __importDefault(require("sweetalert2"));
|
|
17
17
|
var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
|
|
18
|
+
var socket_io_client_1 = require("socket.io-client");
|
|
19
|
+
var websockets_1 = require("../utils/websockets");
|
|
18
20
|
function pageToUrl(page) {
|
|
19
21
|
return "".concat(page.name.toLowerCase().replace(" ", "_"));
|
|
20
22
|
}
|
|
@@ -63,17 +65,31 @@ function exportToCSV(data, filename) {
|
|
|
63
65
|
}
|
|
64
66
|
function AdminPage(_a) {
|
|
65
67
|
var _b;
|
|
66
|
-
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath;
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
var
|
|
68
|
+
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath, _c = _a.apiURL, apiURL = _c === void 0 ? '' : _c;
|
|
69
|
+
var _d = (0, react_3.useDisclosure)(), isOpen = _d.isOpen, onOpen = _d.onOpen, onClose = _d.onClose;
|
|
70
|
+
var _e = (0, react_1.useState)({}), selectedAction = _e[0], setSelectedAction = _e[1];
|
|
71
|
+
var _f = (0, react_1.useState)([]), data = _f[0], setData = _f[1];
|
|
72
|
+
var _g = (0, react_1.useState)([]), displayData = _g[0], setDisplayData = _g[1];
|
|
73
|
+
var _h = (0, react_1.useState)(), rowId = _h[0], setRowId = _h[1];
|
|
74
|
+
var _j = (0, react_1.useState)(false), refetch = _j[0], setRefetch = _j[1];
|
|
75
|
+
var _k = (0, react_1.useState)(socket_io_client_1.io), socket = _k[0], setSocket = _k[1];
|
|
76
|
+
(0, websockets_1.newSocket)(setSocket, apiURL);
|
|
72
77
|
(0, react_1.useEffect)(function () {
|
|
73
78
|
selectedPage.getRequest().then(function (resArray) {
|
|
74
79
|
setData(resArray);
|
|
80
|
+
setRefetch(false);
|
|
75
81
|
});
|
|
76
|
-
}, []);
|
|
82
|
+
}, [refetch]); // Do not remove 'refetch' from here !!!
|
|
83
|
+
(0, react_1.useEffect)(function () {
|
|
84
|
+
socket.on("updateData", function (message) {
|
|
85
|
+
console.log("Message emitted from socket: " + message);
|
|
86
|
+
setRefetch(true);
|
|
87
|
+
var rowActionsMenu = document.querySelector(".MuiPaper-root.MuiPopover-paper.MuiMenu-paper");
|
|
88
|
+
if (rowActionsMenu) {
|
|
89
|
+
rowActionsMenu.remove();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}, [socket, selectedPage]);
|
|
77
93
|
(0, react_1.useEffect)(function () {
|
|
78
94
|
setDisplayData(data.map(function (table_data) {
|
|
79
95
|
return selectedPage.tableFields.map(function (field) { return field.access(table_data); });
|
|
@@ -98,7 +114,6 @@ function AdminPage(_a) {
|
|
|
98
114
|
} }) }), (0, jsx_runtime_1.jsxs)(react_3.Modal, { size: "6xl", isOpen: isOpen, onClose: onClose, children: [(0, jsx_runtime_1.jsx)(react_3.ModalOverlay, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalContent, { children: [(0, jsx_runtime_1.jsx)(react_3.ModalHeader, { children: selectedAction.name }), (0, jsx_runtime_1.jsx)(react_3.ModalCloseButton, {}), (0, jsx_runtime_1.jsxs)(react_3.ModalBody, { children: [selectedAction.fields && ((_b = selectedAction.fields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? ((0, jsx_runtime_1.jsx)(GenericForm_1.GenericForm, { action: selectedAction, onClose: onClose, rowId: rowId })) : ((0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "blue", mr: 3, onClick: function () {
|
|
99
115
|
selectedAction.onSubmit(rowId);
|
|
100
116
|
onClose();
|
|
101
|
-
window.location.reload();
|
|
102
117
|
}, children: "Confirm Action" })), (0, jsx_runtime_1.jsx)(react_3.Button, { colorScheme: "red", mr: 3, onClick: onClose, children: "Close" })] })] })] })] }));
|
|
103
118
|
}
|
|
104
119
|
exports.AdminPage = AdminPage;
|
package/dist/esm/App.js
CHANGED
|
@@ -3,8 +3,8 @@ import { ChakraProvider } from "@chakra-ui/react";
|
|
|
3
3
|
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
4
4
|
import { AdminPage } from "./components/Page";
|
|
5
5
|
import { pageToUrl } from "./components/Page";
|
|
6
|
-
function
|
|
6
|
+
function App(_a) {
|
|
7
7
|
var pages = _a.pages, basePath = _a.basePath;
|
|
8
|
-
return (_jsx(ChakraProvider, { children: _jsx(BrowserRouter, { children: _jsxs(Routes, { children: [pages.map(function (page) { return (_jsx(Route, { path: "".concat(basePath, "/").concat(pageToUrl(page)), element: _jsx(AdminPage, { pages: pages, selectedPage: page, basePath: basePath }) })); }), pages[0] ? (_jsx(Route, { path: "".concat(basePath, "/*"), element: _jsx(AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath }) })) : null] }) }) }));
|
|
8
|
+
return (_jsx(ChakraProvider, { children: _jsx(BrowserRouter, { children: _jsxs(Routes, { children: [pages.map(function (page) { return (_jsx(Route, { path: "".concat(basePath, "/").concat(pageToUrl(page)), element: _jsx(AdminPage, { pages: pages, selectedPage: page, basePath: basePath, apiURL: "http://localhost:3001" }) })); }), pages[0] ? (_jsx(Route, { path: "".concat(basePath, "/*"), element: _jsx(AdminPage, { pages: pages, selectedPage: pages[0], basePath: basePath, apiURL: "http://localhost:3001" }) })) : null] }) }) }));
|
|
9
9
|
}
|
|
10
|
-
export default
|
|
10
|
+
export default App;
|
|
@@ -9,6 +9,8 @@ import { MaterialReactTable } from "material-react-table";
|
|
|
9
9
|
import { mkConfig, generateCsv, download } from "export-to-csv";
|
|
10
10
|
import Swal from "sweetalert2";
|
|
11
11
|
import MenuItem from "@mui/material/MenuItem";
|
|
12
|
+
import { io } from "socket.io-client";
|
|
13
|
+
import { newSocket } from "../utils/websockets";
|
|
12
14
|
export function pageToUrl(page) {
|
|
13
15
|
return "".concat(page.name.toLowerCase().replace(" ", "_"));
|
|
14
16
|
}
|
|
@@ -56,17 +58,31 @@ function exportToCSV(data, filename) {
|
|
|
56
58
|
}
|
|
57
59
|
export function AdminPage(_a) {
|
|
58
60
|
var _b;
|
|
59
|
-
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath;
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
61
|
+
var pages = _a.pages, selectedPage = _a.selectedPage, basePath = _a.basePath, _c = _a.apiURL, apiURL = _c === void 0 ? '' : _c;
|
|
62
|
+
var _d = useDisclosure(), isOpen = _d.isOpen, onOpen = _d.onOpen, onClose = _d.onClose;
|
|
63
|
+
var _e = useState({}), selectedAction = _e[0], setSelectedAction = _e[1];
|
|
64
|
+
var _f = useState([]), data = _f[0], setData = _f[1];
|
|
65
|
+
var _g = useState([]), displayData = _g[0], setDisplayData = _g[1];
|
|
66
|
+
var _h = useState(), rowId = _h[0], setRowId = _h[1];
|
|
67
|
+
var _j = useState(false), refetch = _j[0], setRefetch = _j[1];
|
|
68
|
+
var _k = useState(io), socket = _k[0], setSocket = _k[1];
|
|
69
|
+
newSocket(setSocket, apiURL);
|
|
65
70
|
useEffect(function () {
|
|
66
71
|
selectedPage.getRequest().then(function (resArray) {
|
|
67
72
|
setData(resArray);
|
|
73
|
+
setRefetch(false);
|
|
68
74
|
});
|
|
69
|
-
}, []);
|
|
75
|
+
}, [refetch]); // Do not remove 'refetch' from here !!!
|
|
76
|
+
useEffect(function () {
|
|
77
|
+
socket.on("updateData", function (message) {
|
|
78
|
+
console.log("Message emitted from socket: " + message);
|
|
79
|
+
setRefetch(true);
|
|
80
|
+
var rowActionsMenu = document.querySelector(".MuiPaper-root.MuiPopover-paper.MuiMenu-paper");
|
|
81
|
+
if (rowActionsMenu) {
|
|
82
|
+
rowActionsMenu.remove();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}, [socket, selectedPage]);
|
|
70
86
|
useEffect(function () {
|
|
71
87
|
setDisplayData(data.map(function (table_data) {
|
|
72
88
|
return selectedPage.tableFields.map(function (field) { return field.access(table_data); });
|
|
@@ -91,6 +107,5 @@ export function AdminPage(_a) {
|
|
|
91
107
|
} }) }), _jsxs(Modal, { size: "6xl", isOpen: isOpen, onClose: onClose, children: [_jsx(ModalOverlay, {}), _jsxs(ModalContent, { children: [_jsx(ModalHeader, { children: selectedAction.name }), _jsx(ModalCloseButton, {}), _jsxs(ModalBody, { children: [selectedAction.fields && ((_b = selectedAction.fields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? (_jsx(GenericForm, { action: selectedAction, onClose: onClose, rowId: rowId })) : (_jsx(Button, { colorScheme: "blue", mr: 3, onClick: function () {
|
|
92
108
|
selectedAction.onSubmit(rowId);
|
|
93
109
|
onClose();
|
|
94
|
-
window.location.reload();
|
|
95
110
|
}, children: "Confirm Action" })), _jsx(Button, { colorScheme: "red", mr: 3, onClick: onClose, children: "Close" })] })] })] })] }));
|
|
96
111
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,11 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import ReactDOM from "react-dom/client";
|
|
4
4
|
import "./index.css";
|
|
5
|
-
import
|
|
5
|
+
import App from "./App";
|
|
6
6
|
import reportWebVitals from "./reportWebVitals";
|
|
7
|
-
import {
|
|
7
|
+
import { pages } from "./schema/schema.config";
|
|
8
8
|
var root = ReactDOM.createRoot(document.getElementById("root"));
|
|
9
|
-
root.render(_jsx(React.StrictMode, { children: _jsx(
|
|
9
|
+
root.render(_jsx(React.StrictMode, { children: _jsx(App, { pages: pages, basePath: "" }) }));
|
|
10
10
|
// If you want to start measuring performance in your app, pass a function
|
|
11
11
|
// to log results (for example: reportWebVitals(console.log))
|
|
12
12
|
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import io from "socket.io-client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
var Socket = function (setSocket, apiURL) {
|
|
4
|
+
useEffect(function () {
|
|
5
|
+
var socketRef = io(apiURL, {
|
|
6
|
+
transports: ["websocket"],
|
|
7
|
+
});
|
|
8
|
+
setSocket(socketRef);
|
|
9
|
+
return function () {
|
|
10
|
+
socketRef.removeAllListeners();
|
|
11
|
+
socketRef.disconnect();
|
|
12
|
+
};
|
|
13
|
+
}, []);
|
|
14
|
+
};
|
|
15
|
+
export var newSocket = function (setSocket, apiURL) { return Socket(setSocket, apiURL); };
|
package/dist/index.js
CHANGED
|
@@ -9,9 +9,9 @@ var client_1 = __importDefault(require("react-dom/client"));
|
|
|
9
9
|
require("./index.css");
|
|
10
10
|
var App_1 = __importDefault(require("./App"));
|
|
11
11
|
var reportWebVitals_1 = __importDefault(require("./reportWebVitals"));
|
|
12
|
-
var
|
|
12
|
+
var schema_config_1 = require("./schema/schema.config");
|
|
13
13
|
var root = client_1.default.createRoot(document.getElementById("root"));
|
|
14
|
-
root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages:
|
|
14
|
+
root.render((0, jsx_runtime_1.jsx)(react_1.default.StrictMode, { children: (0, jsx_runtime_1.jsx)(App_1.default, { pages: schema_config_1.pages, basePath: "" }) }));
|
|
15
15
|
// If you want to start measuring performance in your app, pass a function
|
|
16
16
|
// to log results (for example: reportWebVitals(console.log))
|
|
17
17
|
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.newSocket = void 0;
|
|
7
|
+
var socket_io_client_1 = __importDefault(require("socket.io-client"));
|
|
8
|
+
var react_1 = require("react");
|
|
9
|
+
var Socket = function (setSocket, apiURL) {
|
|
10
|
+
(0, react_1.useEffect)(function () {
|
|
11
|
+
var socketRef = (0, socket_io_client_1.default)(apiURL, {
|
|
12
|
+
transports: ["websocket"],
|
|
13
|
+
});
|
|
14
|
+
setSocket(socketRef);
|
|
15
|
+
return function () {
|
|
16
|
+
socketRef.removeAllListeners();
|
|
17
|
+
socketRef.disconnect();
|
|
18
|
+
};
|
|
19
|
+
}, []);
|
|
20
|
+
};
|
|
21
|
+
var newSocket = function (setSocket, apiURL) { return Socket(setSocket, apiURL); };
|
|
22
|
+
exports.newSocket = newSocket;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "admin_lsac",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9",
|
|
4
4
|
"description": "Generic Admin Panel created for storing events' data",
|
|
5
5
|
"private": false,
|
|
6
6
|
"dependencies": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"react-router-dom": "^6.10.0",
|
|
31
31
|
"react-scripts": "^5.0.1",
|
|
32
32
|
"react-table": "^7.8.0",
|
|
33
|
+
"socket.io-client": "^4.7.5",
|
|
33
34
|
"sweetalert2": "^11.6.13",
|
|
34
35
|
"typescript": "^4.9.5",
|
|
35
36
|
"web-vitals": "^2.1.4",
|
package/src/App.tsx
CHANGED
|
@@ -1,110 +1,50 @@
|
|
|
1
|
-
import { ChakraProvider } from "@chakra-ui/react";
|
|
2
|
-
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
3
|
-
import { AdminPage } from "./components/Page";
|
|
4
|
-
import { pageToUrl } from "./components/Page";
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
onSubmit: (obj1: any, obj2?: any) => Promise<any>;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
interface RowAction {
|
|
55
|
-
name: string;
|
|
56
|
-
fields?: FormField[];
|
|
57
|
-
initialise: (obj: any) => any;
|
|
58
|
-
onSubmit: (obj1: any, obj2?: any) => Promise<any>;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
interface PageSchema {
|
|
62
|
-
name: string;
|
|
63
|
-
actions: Action[];
|
|
64
|
-
rowActions: RowAction[];
|
|
65
|
-
getRequest: () => Promise<any[]>;
|
|
66
|
-
tableFields: TableField[];
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function AdminPanel({
|
|
70
|
-
pages,
|
|
71
|
-
basePath,
|
|
72
|
-
}: {
|
|
73
|
-
pages: PageSchema[];
|
|
74
|
-
basePath: string;
|
|
75
|
-
}) {
|
|
76
|
-
return (
|
|
77
|
-
<ChakraProvider>
|
|
78
|
-
<BrowserRouter>
|
|
79
|
-
<Routes>
|
|
80
|
-
{pages.map((page) => (
|
|
81
|
-
<Route
|
|
82
|
-
path={`${basePath}/${pageToUrl(page)}`}
|
|
83
|
-
element={
|
|
84
|
-
<AdminPage
|
|
85
|
-
pages={pages}
|
|
86
|
-
selectedPage={page}
|
|
87
|
-
basePath={basePath}
|
|
88
|
-
/>
|
|
89
|
-
}
|
|
90
|
-
/>
|
|
91
|
-
))}
|
|
92
|
-
{pages[0] ? (
|
|
93
|
-
<Route
|
|
94
|
-
path={`${basePath}/*`}
|
|
95
|
-
element={
|
|
96
|
-
<AdminPage
|
|
97
|
-
pages={pages}
|
|
98
|
-
selectedPage={pages[0]}
|
|
99
|
-
basePath={basePath}
|
|
100
|
-
/>
|
|
101
|
-
}
|
|
102
|
-
/>
|
|
103
|
-
) : null}
|
|
104
|
-
</Routes>
|
|
105
|
-
</BrowserRouter>
|
|
106
|
-
</ChakraProvider>
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export default AdminPanel;
|
|
1
|
+
import { ChakraProvider } from "@chakra-ui/react";
|
|
2
|
+
import { BrowserRouter, Route, Routes } from "react-router-dom";
|
|
3
|
+
import { AdminPage } from "./components/Page";
|
|
4
|
+
import { pageToUrl } from "./components/Page";
|
|
5
|
+
import { PageSchema } from "./schema/schema";
|
|
6
|
+
|
|
7
|
+
function App({
|
|
8
|
+
pages,
|
|
9
|
+
basePath,
|
|
10
|
+
}: {
|
|
11
|
+
pages: PageSchema[];
|
|
12
|
+
basePath: string;
|
|
13
|
+
}) {
|
|
14
|
+
return (
|
|
15
|
+
<ChakraProvider>
|
|
16
|
+
<BrowserRouter>
|
|
17
|
+
<Routes>
|
|
18
|
+
{pages.map((page) => (
|
|
19
|
+
<Route
|
|
20
|
+
path={`${basePath}/${pageToUrl(page)}`}
|
|
21
|
+
element={
|
|
22
|
+
<AdminPage
|
|
23
|
+
pages={pages}
|
|
24
|
+
selectedPage={page}
|
|
25
|
+
basePath={basePath}
|
|
26
|
+
apiURL="http://localhost:3001"
|
|
27
|
+
/>
|
|
28
|
+
}
|
|
29
|
+
/>
|
|
30
|
+
))}
|
|
31
|
+
{pages[0] ? (
|
|
32
|
+
<Route
|
|
33
|
+
path={`${basePath}/*`}
|
|
34
|
+
element={
|
|
35
|
+
<AdminPage
|
|
36
|
+
pages={pages}
|
|
37
|
+
selectedPage={pages[0]}
|
|
38
|
+
basePath={basePath}
|
|
39
|
+
apiURL="http://localhost:3001"
|
|
40
|
+
/>
|
|
41
|
+
}
|
|
42
|
+
/>
|
|
43
|
+
) : null}
|
|
44
|
+
</Routes>
|
|
45
|
+
</BrowserRouter>
|
|
46
|
+
</ChakraProvider>
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default App;
|