@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('tableFilters');
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 === 0) {
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.map((x) => {
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('tableFilters', JSON.stringify(value));
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('tableFilters', JSON.stringify([]));
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('tableFilters', JSON.stringify(value));
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('tableFilters', JSON.stringify(value));
600
+ localStorage.setItem(filterStorageName, JSON.stringify(value));
580
601
  return value;
581
602
  });
582
603
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssplib/react-components",
3
- "version": "0.0.141",
3
+ "version": "0.0.143",
4
4
  "description": "SSP React Components",
5
5
  "main": "index.js",
6
6
  "author": "Pedro Henrique <sr.hudrick@gmail.com>",