@ssplib/react-components 0.0.141 → 0.0.143
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.
|
@@ -5,9 +5,10 @@ interface ColumnData {
|
|
|
5
5
|
size?: number;
|
|
6
6
|
}
|
|
7
7
|
type FilterTypes = 'a-z' | 'z-a' | 'items' | 'date-interval' | 'data-a-z' | 'data-z-a';
|
|
8
|
-
export declare function Table({ columns, fetchFunc, emptyMsg, dataPath, tableName, csv, columnSize, action, isPublic, statusKeyName, csvExcludeKeys, csvExcludeKeysAll, csvCustomKeyNames, csvExcludeValidate, csvButtonTitle, csvAllButtonTitle, removeQuotes, normalize, csvShowAllButton, itemCount, csvUpper, csvZipFileNamesKey, generateCsvZip, filters, hideTitleCSV, filterSeparator, }: {
|
|
8
|
+
export declare function Table({ columns, fetchFunc, emptyMsg, dataPath, tableName, csv, columnSize, action, isPublic, statusKeyName, csvExcludeKeys, csvExcludeKeysAll, csvCustomKeyNames, csvExcludeValidate, csvButtonTitle, csvAllButtonTitle, removeQuotes, normalize, csvShowAllButton, itemCount, csvUpper, csvZipFileNamesKey, generateCsvZip, filters, hideTitleCSV, filterSeparator, filterStorageName, }: {
|
|
9
9
|
normalize?: boolean;
|
|
10
10
|
csvUpper?: boolean;
|
|
11
|
+
filterStorageName?: string;
|
|
11
12
|
removeQuotes?: boolean;
|
|
12
13
|
columns: ColumnData[];
|
|
13
14
|
tableName: string;
|
|
@@ -46,7 +46,7 @@ let startData = [];
|
|
|
46
46
|
function Table({ columns, fetchFunc, emptyMsg = {
|
|
47
47
|
user: 'Nenhum dado encontrado',
|
|
48
48
|
public: 'Nenhum dado encontrado',
|
|
49
|
-
}, dataPath = '', tableName = 'Dados', csv, columnSize, action, isPublic = false, statusKeyName = '', csvExcludeKeys = [], csvExcludeKeysAll = [], csvCustomKeyNames = {}, csvExcludeValidate = (key, value) => false, csvButtonTitle = 'Salvar .CSV', csvAllButtonTitle = 'Salvar todos em CSV', removeQuotes = false, normalize = false, csvShowAllButton = false, itemCount = 10, csvUpper = false, csvZipFileNamesKey = '', generateCsvZip = false, filters = {}, hideTitleCSV = false, filterSeparator = '|', }) {
|
|
49
|
+
}, dataPath = '', tableName = 'Dados', csv, columnSize, action, isPublic = false, statusKeyName = '', csvExcludeKeys = [], csvExcludeKeysAll = [], csvCustomKeyNames = {}, csvExcludeValidate = (key, value) => false, csvButtonTitle = 'Salvar .CSV', csvAllButtonTitle = 'Salvar todos em CSV', removeQuotes = false, normalize = false, csvShowAllButton = false, itemCount = 10, csvUpper = false, csvZipFileNamesKey = '', generateCsvZip = false, filters = {}, hideTitleCSV = false, filterSeparator = '|', filterStorageName = 'tableFilters', }) {
|
|
50
50
|
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
51
51
|
const [error, setError] = (0, react_1.useState)(null);
|
|
52
52
|
const [data, setData] = (0, react_1.useState)(null);
|
|
@@ -83,7 +83,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
83
83
|
else {
|
|
84
84
|
setData(j);
|
|
85
85
|
startData = JSON.parse(JSON.stringify(j));
|
|
86
|
-
const oldFilters = localStorage.getItem(
|
|
86
|
+
const oldFilters = localStorage.getItem(filterStorageName);
|
|
87
87
|
if (oldFilters) {
|
|
88
88
|
const filters = JSON.parse(oldFilters);
|
|
89
89
|
setAppliedFilters(filters);
|
|
@@ -350,7 +350,28 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
350
350
|
}, [appliedFilters]);
|
|
351
351
|
const filterBasedOnList = (filteredList) => {
|
|
352
352
|
let rawList = JSON.parse(JSON.stringify(Array.isArray(startData) ? startData : (0, lodash_get_1.default)(startData, dataPath)));
|
|
353
|
-
if (filteredList.length
|
|
353
|
+
if (filteredList.length <= 0 || rawList.length <= 0) {
|
|
354
|
+
setList(rawList);
|
|
355
|
+
setPagCount(getCount(rawList));
|
|
356
|
+
setCurrentPage(0);
|
|
357
|
+
setListPage(1);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
let canContinue = true;
|
|
361
|
+
// verificando todas as chaves existem, se a chave não existir, não pode continuar e nao faz nada
|
|
362
|
+
filteredList
|
|
363
|
+
.map((x) => x.keyName)
|
|
364
|
+
.forEach((x) => {
|
|
365
|
+
if (!canContinue)
|
|
366
|
+
return;
|
|
367
|
+
if (!Object.keys(rawList[0]).includes(x)) {
|
|
368
|
+
canContinue = false;
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
if (!canContinue) {
|
|
373
|
+
setAppliedFilters([]);
|
|
374
|
+
localStorage.setItem(filterStorageName, JSON.stringify([]));
|
|
354
375
|
setList(rawList);
|
|
355
376
|
setPagCount(getCount(rawList));
|
|
356
377
|
setCurrentPage(0);
|
|
@@ -521,7 +542,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
521
542
|
return 0;
|
|
522
543
|
});
|
|
523
544
|
}
|
|
524
|
-
appliedFilters.
|
|
545
|
+
appliedFilters.forEach((x) => {
|
|
525
546
|
if (!x.isDate)
|
|
526
547
|
category(x.type, x.keyName, x.uniqueName, x.customValue, x.referencekey);
|
|
527
548
|
else
|
|
@@ -544,7 +565,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
544
565
|
referencekey,
|
|
545
566
|
},
|
|
546
567
|
];
|
|
547
|
-
localStorage.setItem(
|
|
568
|
+
localStorage.setItem(filterStorageName, JSON.stringify(value));
|
|
548
569
|
return value;
|
|
549
570
|
});
|
|
550
571
|
};
|
|
@@ -552,7 +573,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
552
573
|
const value = JSON.parse(JSON.stringify(Array.isArray(startData) ? startData : (0, lodash_get_1.default)(startData, dataPath)));
|
|
553
574
|
setList(value);
|
|
554
575
|
setAppliedFilters([]);
|
|
555
|
-
localStorage.setItem(
|
|
576
|
+
localStorage.setItem(filterStorageName, JSON.stringify([]));
|
|
556
577
|
};
|
|
557
578
|
const removeFilter = (uniqueName) => {
|
|
558
579
|
if (uniqueName === 'isDate')
|
|
@@ -560,7 +581,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
560
581
|
else
|
|
561
582
|
setAppliedFilters((s) => {
|
|
562
583
|
const value = s.filter((x) => x.uniqueName !== uniqueName);
|
|
563
|
-
localStorage.setItem(
|
|
584
|
+
localStorage.setItem(filterStorageName, JSON.stringify(value));
|
|
564
585
|
return value;
|
|
565
586
|
});
|
|
566
587
|
};
|
|
@@ -576,7 +597,7 @@ function Table({ columns, fetchFunc, emptyMsg = {
|
|
|
576
597
|
id: from + keyName,
|
|
577
598
|
},
|
|
578
599
|
];
|
|
579
|
-
localStorage.setItem(
|
|
600
|
+
localStorage.setItem(filterStorageName, JSON.stringify(value));
|
|
580
601
|
return value;
|
|
581
602
|
});
|
|
582
603
|
};
|