@visns-studio/visns-components 5.7.19 → 5.8.0

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/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "react-dom": "^17.0.0 || ^18.0.0"
83
83
  },
84
84
  "name": "@visns-studio/visns-components",
85
- "version": "5.7.19",
85
+ "version": "5.8.0",
86
86
  "description": "Various packages to assist in the development of our Custom Applications.",
87
87
  "main": "src/index.js",
88
88
  "files": [
@@ -538,27 +538,43 @@ const DataGrid = forwardRef(
538
538
  s[obj.id] = obj;
539
539
  });
540
540
  setSelected(s);
541
+ // Update parent component's rowsSelected state
542
+ if (setRowsSelected) {
543
+ setRowsSelected(s);
544
+ }
541
545
  } else if (typeof param.selected === 'object') {
542
546
  const selectedKey = Object.keys(param.selected)[0];
543
547
  const isSelectedAlready =
544
548
  selected.hasOwnProperty(selectedKey);
545
549
 
550
+ let newSelected;
546
551
  if (isSelectedAlready) {
547
- setSelected({});
552
+ newSelected = {};
553
+ setSelected(newSelected);
548
554
  } else {
549
- setSelected((prevSelected) => ({
550
- ...prevSelected,
555
+ newSelected = {
556
+ ...selected,
551
557
  [selectedKey]: param.selected[selectedKey],
552
- }));
558
+ };
559
+ setSelected(newSelected);
560
+ }
561
+
562
+ // Update parent component's rowsSelected state
563
+ if (setRowsSelected) {
564
+ setRowsSelected(newSelected);
553
565
  }
554
566
  }
555
567
  } else {
556
568
  // Handle deselection directly without confirmation
557
569
  setSelected(param.selected);
570
+ // Update parent component's rowsSelected state
571
+ if (setRowsSelected) {
572
+ setRowsSelected(param.selected);
573
+ }
558
574
  }
559
575
  },
560
- [selected]
561
- ); // Including selected in the dependency array
576
+ [selected, setRowsSelected]
577
+ ); // Including selected and setRowsSelected in the dependency array
562
578
 
563
579
  const findUpdatedFilter = (filters, currentValues) => {
564
580
  for (const filter of filters) {
@@ -410,6 +410,8 @@ function GenericIndex({
410
410
 
411
411
  const { data, method, message, url } = checkboxUpdateConfig;
412
412
 
413
+ console.info('Selected rows:', rowsSelectedRef.current);
414
+
413
415
  if (!Object.keys(rowsSelectedRef.current).length) {
414
416
  toast.warning(message.warning);
415
417
  return;
@@ -553,6 +555,7 @@ function GenericIndex({
553
555
  setConfig={setConfig}
554
556
  setTableData={setTableData}
555
557
  setTotal={setTotal}
558
+ setRowsSelected={setRowsSelected}
556
559
  style={userProfile?.settings?.style || {}}
557
560
  userProfile={userProfile}
558
561
  />
@@ -570,7 +573,15 @@ function GenericIndex({
570
573
  }
571
574
 
572
575
  return null;
573
- }, [config, subnav, windowHeight, userProfile, setConfig, setTotal]);
576
+ }, [
577
+ config,
578
+ subnav,
579
+ windowHeight,
580
+ userProfile,
581
+ setConfig,
582
+ setTotal,
583
+ setRowsSelected,
584
+ ]);
574
585
 
575
586
  const renderContentBasedOnType = useCallback(() => {
576
587
  switch (config.type) {
@@ -742,6 +753,7 @@ function GenericIndex({
742
753
  <button className={styles.btn} onClick={handleCustomAction}>
743
754
  {getFunctionConfig('customAction').label ||
744
755
  'Custom Action'}
756
+ aa
745
757
  </button>
746
758
  )}
747
759