@ctlyst.id/internal-ui 2.0.9 → 2.0.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/data-table/components/data-table.d.ts +2 -2
- package/dist/internal-ui.cjs.development.js +22 -58
- package/dist/internal-ui.cjs.development.js.map +1 -1
- package/dist/internal-ui.cjs.production.min.js +13 -13
- package/dist/internal-ui.cjs.production.min.js.map +1 -1
- package/dist/internal-ui.esm.js +23 -59
- package/dist/internal-ui.esm.js.map +1 -1
- package/package.json +2 -2
- package/dist/components/data-table/components/indeterminate-checkbox.d.ts +0 -8
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { BoxProps, TableBodyProps, TableCellProps, TableColumnHeaderProps, TableHeadProps, TableProps, TableRowProps } from '@chakra-ui/react';
|
2
|
-
import type { ColumnDef,
|
2
|
+
import type { ColumnDef, RowSelectionInstance, SortingState } from '@tanstack/react-table';
|
3
3
|
import * as React from 'react';
|
4
4
|
export interface TableStyleProps {
|
5
5
|
table?: TableProps;
|
@@ -16,7 +16,7 @@ export interface DataTableProps<T = unknown> extends BoxProps {
|
|
16
16
|
isLoading?: boolean;
|
17
17
|
withSelectedRow?: boolean | undefined;
|
18
18
|
onSelectedRow?: (data: T[]) => void;
|
19
|
-
onSort?: (data:
|
19
|
+
onSort?: (data: SortingState) => void;
|
20
20
|
manualSorting?: boolean;
|
21
21
|
sortingState?: SortingState;
|
22
22
|
sortDescFirst?: boolean;
|
@@ -560,48 +560,6 @@ Chips.defaultProps = {
|
|
560
560
|
size: 'sm'
|
561
561
|
};
|
562
562
|
|
563
|
-
const useCombinedRefs = (...refs) => {
|
564
|
-
const targetRef = React.useRef();
|
565
|
-
React.useEffect(() => {
|
566
|
-
refs.forEach(ref => {
|
567
|
-
/* eslint-disable no-param-reassign */
|
568
|
-
if (!ref) return;
|
569
|
-
if (typeof ref === 'function') {
|
570
|
-
ref(targetRef.current);
|
571
|
-
} else {
|
572
|
-
ref.current = targetRef.current;
|
573
|
-
}
|
574
|
-
});
|
575
|
-
}, [refs]);
|
576
|
-
return targetRef;
|
577
|
-
};
|
578
|
-
const IndeterminateCheckbox = /*#__PURE__*/React.forwardRef(({
|
579
|
-
isIndeterminate,
|
580
|
-
isChecked,
|
581
|
-
...rest
|
582
|
-
}, ref) => {
|
583
|
-
const defaultRef = React.useRef(null);
|
584
|
-
const combinedRef = useCombinedRefs(ref, defaultRef);
|
585
|
-
React.useEffect(() => {
|
586
|
-
if (combinedRef !== null && combinedRef !== void 0 && combinedRef.current) {
|
587
|
-
combinedRef.current.indeterminate = isIndeterminate !== null && isIndeterminate !== void 0 ? isIndeterminate : false;
|
588
|
-
}
|
589
|
-
}, [combinedRef, isIndeterminate]);
|
590
|
-
return /*#__PURE__*/React__default.createElement(react.Checkbox, Object.assign({
|
591
|
-
ref: combinedRef,
|
592
|
-
focusBorderColor: "0",
|
593
|
-
isIndeterminate: isIndeterminate,
|
594
|
-
isChecked: isChecked,
|
595
|
-
inputProps: {
|
596
|
-
'data-test-id': `CT_component_indeterminate-checkbox_${rest.id || rest.name}`
|
597
|
-
}
|
598
|
-
}, rest));
|
599
|
-
});
|
600
|
-
IndeterminateCheckbox.displayName = 'IndeterminateCheckbox';
|
601
|
-
IndeterminateCheckbox.defaultProps = {
|
602
|
-
isIndeterminate: false
|
603
|
-
};
|
604
|
-
|
605
563
|
/* eslint-disable react-hooks/rules-of-hooks */
|
606
564
|
const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
607
565
|
const {
|
@@ -618,6 +576,7 @@ const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
618
576
|
manualSorting,
|
619
577
|
onRowClick
|
620
578
|
} = props;
|
579
|
+
const [isFirstLoad, setIsFirstLoad] = React.useState(true);
|
621
580
|
const [sorting, setSorting] = React.useState(sortingState !== null && sortingState !== void 0 ? sortingState : []);
|
622
581
|
const [rowSelection, onRowSelectionChange] = React.useState({});
|
623
582
|
const dataColumns = React.useMemo(() => columns, [columns]);
|
@@ -625,20 +584,20 @@ const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
625
584
|
id: 'select',
|
626
585
|
header: ({
|
627
586
|
table
|
628
|
-
}) => /*#__PURE__*/React.createElement(
|
629
|
-
|
587
|
+
}) => /*#__PURE__*/React.createElement(react.Checkbox, Object.assign({
|
588
|
+
"data-test-id": "select-header-data-table"
|
630
589
|
}, {
|
631
|
-
|
632
|
-
|
590
|
+
isChecked: table.getIsAllRowsSelected(),
|
591
|
+
isIndeterminate: table.getIsSomeRowsSelected(),
|
633
592
|
onChange: table.getToggleAllRowsSelectedHandler()
|
634
593
|
})),
|
635
594
|
cell: ({
|
636
595
|
row
|
637
|
-
}) => /*#__PURE__*/React.createElement(
|
638
|
-
|
596
|
+
}) => /*#__PURE__*/React.createElement(react.Checkbox, Object.assign({
|
597
|
+
"data-test-id": `select-data-table-${row.index}`
|
639
598
|
}, {
|
640
|
-
|
641
|
-
|
599
|
+
isChecked: row.getIsSelected(),
|
600
|
+
isIndeterminate: row.getIsSomeSelected(),
|
642
601
|
onChange: row.getToggleSelectedHandler()
|
643
602
|
}))
|
644
603
|
}], []);
|
@@ -650,9 +609,6 @@ const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
650
609
|
};
|
651
610
|
const onSortingChange = data => {
|
652
611
|
setSorting(data);
|
653
|
-
if (onSort) {
|
654
|
-
onSort(data);
|
655
|
-
}
|
656
612
|
};
|
657
613
|
const table = reactTable.useReactTable({
|
658
614
|
data: dataSource,
|
@@ -685,6 +641,14 @@ const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
685
641
|
React.useImperativeHandle(ref, () => ({
|
686
642
|
toggleAllRowsSelected
|
687
643
|
}));
|
644
|
+
React.useEffect(() => {
|
645
|
+
if (onSort && !isFirstLoad) {
|
646
|
+
onSort(sorting);
|
647
|
+
}
|
648
|
+
}, [sorting]);
|
649
|
+
React.useEffect(() => {
|
650
|
+
setIsFirstLoad(false);
|
651
|
+
}, []);
|
688
652
|
return /*#__PURE__*/React.createElement(react.Box, Object.assign({}, props), isLoading && /*#__PURE__*/React.createElement(react.Flex, {
|
689
653
|
w: "100%",
|
690
654
|
h: "100%",
|
@@ -738,12 +702,12 @@ const DataTable = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
738
702
|
key: row.id
|
739
703
|
}, styles === null || styles === void 0 ? void 0 : styles.tableRow, {
|
740
704
|
css: react$1.css`
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
}
|
705
|
+
&:last-child {
|
706
|
+
td {
|
707
|
+
border-bottom: none;
|
745
708
|
}
|
746
|
-
|
709
|
+
}
|
710
|
+
`,
|
747
711
|
onClick: () => {
|
748
712
|
if (onRowClick) {
|
749
713
|
onRowClick(row.original);
|