admin_lsac 2.0.8 → 2.0.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.
|
@@ -22,43 +22,13 @@ function Header({ pages, data, basePath }) {
|
|
|
22
22
|
}, children: "Export Data" }) })] }) }));
|
|
23
23
|
}
|
|
24
24
|
function exportToCSV(data, filename) {
|
|
25
|
-
const formatData = (obj) => {
|
|
26
|
-
const formattedObj = {};
|
|
27
|
-
for (const key in obj) {
|
|
28
|
-
if (typeof obj[key] !== 'object') {
|
|
29
|
-
formattedObj[key] = obj[key];
|
|
30
|
-
}
|
|
31
|
-
else if (typeof obj[key] === 'object' && obj[key] != null) {
|
|
32
|
-
Object.keys(obj[key]).forEach((k) => {
|
|
33
|
-
formattedObj[`${key}.${k}`] = obj[key][k];
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return formattedObj;
|
|
38
|
-
};
|
|
39
|
-
const removeTimestamps = (obj) => {
|
|
40
|
-
const { createdAt, updatedAt, ...rest } = obj;
|
|
41
|
-
return rest;
|
|
42
|
-
};
|
|
43
|
-
const allKeys = new Set();
|
|
44
|
-
data.forEach((item) => {
|
|
45
|
-
Object.keys(formatData(removeTimestamps(item))).forEach((key) => allKeys.add(key));
|
|
46
|
-
});
|
|
47
|
-
const formattedData = data.map((item) => {
|
|
48
|
-
const newItem = formatData(removeTimestamps(item));
|
|
49
|
-
allKeys.forEach((key) => {
|
|
50
|
-
if (!(key in newItem)) {
|
|
51
|
-
newItem[key] = '';
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return newItem;
|
|
55
|
-
});
|
|
56
25
|
const csvConfig = mkConfig({
|
|
57
26
|
useKeysAsHeaders: true,
|
|
27
|
+
showColumnHeaders: false,
|
|
58
28
|
filename: filename,
|
|
59
29
|
});
|
|
60
|
-
if (
|
|
61
|
-
const csv = generateCsv(csvConfig)(
|
|
30
|
+
if (data.length > 1) {
|
|
31
|
+
const csv = generateCsv(csvConfig)(data);
|
|
62
32
|
download(csvConfig)(csv);
|
|
63
33
|
}
|
|
64
34
|
else {
|
|
@@ -97,7 +67,7 @@ export function AdminPage({ pages, selectedPage, basePath, apiURL = '', }) {
|
|
|
97
67
|
useEffect(() => {
|
|
98
68
|
setDisplayData(data.map((table_data) => selectedPage.tableFields.map((field) => field.access(table_data))));
|
|
99
69
|
}, [data]);
|
|
100
|
-
return (_jsxs(_Fragment, { children: [_jsx(Header, { pages: pages, data:
|
|
70
|
+
return (_jsxs(_Fragment, { children: [_jsx(Header, { pages: pages, data: [selectedPage.tableFields.map((field) => field.name), ...displayData], basePath: basePath }), _jsx(ThemeProvider, { theme: createTheme(), children: _jsx(MaterialReactTable, { columns: selectedPage.tableFields.map((field, index) => ({
|
|
101
71
|
accessorFn: (row) => {
|
|
102
72
|
if (typeof row[index] === 'boolean') {
|
|
103
73
|
row[index] = String(row[index]);
|