@visns-studio/visns-components 2.5.15 → 2.5.17

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.
@@ -153,7 +153,6 @@ const DataGrid = forwardRef(
153
153
  const data = useCallback(
154
154
  (params) => {
155
155
  const sqlResult = loadData(params, dSearch, ajaxSetting);
156
-
157
156
  if (setFilterData && params.filterValue) {
158
157
  setFilterData(params.filterValue);
159
158
  }
@@ -172,6 +171,7 @@ const DataGrid = forwardRef(
172
171
  const [filterDataSource, setFilterDataSource] = useState([]);
173
172
  const [filterValue, setFilterValue] = useState([]);
174
173
  const [gridColumns, setGridColumns] = useState([]);
174
+ const gridRef = useRef(null);
175
175
  const [limit, setLimit] = useState(0);
176
176
  const [search, setSearch] = useState('');
177
177
  const [selected, setSelected] = useState({});
@@ -183,9 +183,18 @@ const DataGrid = forwardRef(
183
183
  },
184
184
  }));
185
185
 
186
- const handleSelectionChnage = useCallback(({ selected }) => {
187
- console.info(selected, data);
188
- setSelected(selected);
186
+ const handleSelectionChange = useCallback((param) => {
187
+ if (param.selected === true) {
188
+ const s = {};
189
+
190
+ param.data.forEach((obj) => {
191
+ s[obj.id] = obj;
192
+ });
193
+
194
+ setSelected(s);
195
+ } else {
196
+ setSelected(param.selected);
197
+ }
189
198
  }, []);
190
199
 
191
200
  const handleFilterChange = useCallback((d) => {
@@ -572,7 +581,7 @@ const DataGrid = forwardRef(
572
581
 
573
582
  /** Table Hooks */
574
583
  useEffect(() => {
575
- if ( setRowsSelected) {
584
+ if (setRowsSelected) {
576
585
  setRowsSelected(selected);
577
586
  }
578
587
  }, [selected]);
@@ -1890,16 +1899,17 @@ const DataGrid = forwardRef(
1890
1899
  limit={limit}
1891
1900
  enableColumnAutosize={false}
1892
1901
  enableColumnFilterContextMenu={false}
1893
- enableSelection={true}
1902
+ handle={(ref) =>
1903
+ (gridRef.current = ref ? ref.current : null)
1904
+ }
1894
1905
  headerProps={headerProps}
1895
1906
  idProperty="id"
1896
1907
  minRowHeight={40}
1897
- multiSelect={true}
1898
1908
  onFilterValueChange={(filterValue) => {
1899
1909
  handleFilterChange(filterValue);
1900
1910
  }}
1901
1911
  onLimitChange={setLimit}
1902
- onSelectionChange={handleSelectionChnage}
1912
+ onSelectionChange={handleSelectionChange}
1903
1913
  onSortInfoChange={handleSort}
1904
1914
  onRenderRow={onRenderRow}
1905
1915
  pagination
@@ -54,10 +54,6 @@ function GenericDetail({ setting, urlParam, userProfile }) {
54
54
  });
55
55
 
56
56
  if (res.data.error === '') {
57
- toast.success(
58
- `Job stage has been updated to ${stage.label}`
59
- );
60
-
61
57
  handleReload();
62
58
  } else {
63
59
  toast.error(res.data.error);
@@ -1,6 +1,7 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useEffect, useRef, useState } from 'react';
2
2
  import { Outlet } from 'react-router-dom';
3
3
  import { toast } from 'react-toastify';
4
+ import CustomFetch from '../Fetch';
4
5
  import Table from '../DataGrid';
5
6
  import TableFilter from '../TableFilter';
6
7
 
@@ -16,6 +17,7 @@ function GenericIndex({ layout = 'full', setting, userProfile }) {
16
17
  tableSetting,
17
18
  tabs,
18
19
  } = setting;
20
+ const gridRef = useRef(null);
19
21
 
20
22
  const [config, setConfig] = useState({});
21
23
  const [rowsSelected, setRowsSelected] = useState({});
@@ -28,16 +30,30 @@ function GenericIndex({ layout = 'full', setting, userProfile }) {
28
30
  return Object.keys(obj).length === 0;
29
31
  };
30
32
 
31
- const handleCheckboxUpdate = (e) => {
32
- e.preventDefault();
33
- const message = functions.checkboxUpdate.message;
34
-
35
- console.info(isObjectEmpty(rowsSelected), rowsSelected);
36
-
37
- if (isObjectEmpty(rowsSelected)) {
38
- toast.warning(message.warning);
39
- } else {
40
- console.info(rowsSelected);
33
+ const handleCheckboxUpdate = async (e) => {
34
+ try {
35
+ e.preventDefault();
36
+ const { data, method, message, url } = functions.checkboxUpdate;
37
+
38
+ if (isObjectEmpty(rowsSelected)) {
39
+ toast.warning(message.warning);
40
+ } else {
41
+ const res = await CustomFetch(url, method, {
42
+ ...data,
43
+ rows: rowsSelected,
44
+ });
45
+
46
+ console.info(res);
47
+
48
+ if (res.data.error === '') {
49
+ toast.success(message.success);
50
+ gridRef.current.reload();
51
+ } else {
52
+ toast.error(message.error);
53
+ }
54
+ }
55
+ } catch (error) {
56
+ console.error(error);
41
57
  }
42
58
  };
43
59
 
@@ -126,6 +142,7 @@ function GenericIndex({ layout = 'full', setting, userProfile }) {
126
142
  <div className={`grid__subcontent`}>
127
143
  <Table
128
144
  {...config}
145
+ ref={gridRef}
129
146
  gridHeight={windowHeight * 0.65}
130
147
  setConfig={setConfig}
131
148
  setTotal={setTotal}
@@ -150,6 +167,7 @@ function GenericIndex({ layout = 'full', setting, userProfile }) {
150
167
  <div className={`tabcontent__main`}>
151
168
  <Table
152
169
  {...config}
170
+ ref={gridRef}
153
171
  gridHeight={
154
172
  windowHeight * 0.65
155
173
  }
@@ -169,6 +187,7 @@ function GenericIndex({ layout = 'full', setting, userProfile }) {
169
187
  <div className="grid__full">
170
188
  <Table
171
189
  {...config}
190
+ ref={gridRef}
172
191
  gridHeight={windowHeight * 0.65}
173
192
  setConfig={setConfig}
174
193
  setTotal={setTotal}
package/package.json CHANGED
@@ -42,7 +42,7 @@
42
42
  "react-dom": "^17.0.1"
43
43
  },
44
44
  "name": "@visns-studio/visns-components",
45
- "version": "2.5.15",
45
+ "version": "2.5.17",
46
46
  "description": "Various packages to assist in the development of our Custom Applications.",
47
47
  "main": "index.js",
48
48
  "scripts": {