playbook_ui 12.26.0.pre.alpha.multiselectfixes798 → 12.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_multi_level_select/_helper_functions.tsx +0 -19
- data/app/pb_kits/playbook/pb_multi_level_select/_multi_level_select.tsx +13 -21
- data/app/pb_kits/playbook/pb_multi_level_select/docs/_multi_level_select_default.jsx +61 -727
- data/dist/playbook-rails.js +1 -1
- data/lib/playbook/version.rb +2 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f05ba004408818dfcba9bd10157c3c88af1dd4d310795c061f333b5945fc4f5a
|
4
|
+
data.tar.gz: e0634afd89ddd77122ed2a6fedf1a0af05dbc0a07e93dccae55b1e2227303cbc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9c746e3c5e9e738c378c47f109c3c7ac8f069da5d04fca517dc58128053d6b02a75b0ba2d244d1f070348f856d8348438721f59708afd9b9be90ba82f66267f
|
7
|
+
data.tar.gz: '050496ad839d51a4fc1e6440d9356f578cb3613b788770ffbd703b99c1f1f14d1e060e6dd7b7bc1fb878c61f5f1a697b0a8df3ddb55b8f0ee4085d047a6be9a8'
|
@@ -210,22 +210,3 @@ export const removeChildrenIfParentChecked = (
|
|
210
210
|
);
|
211
211
|
setDefaultReturn([...filteredDefaultArray, items]);
|
212
212
|
};
|
213
|
-
|
214
|
-
export const areAllCheckedFalse = (data:any) => {
|
215
|
-
if (!Array.isArray(data)) {
|
216
|
-
return;
|
217
|
-
}
|
218
|
-
for (const item of data) {
|
219
|
-
if (item.checked !== false) {
|
220
|
-
return false; // Return false if any item is not checked: false
|
221
|
-
}
|
222
|
-
|
223
|
-
if (item.children && item.children.length > 0) {
|
224
|
-
if (!areAllCheckedFalse(item.children)) {
|
225
|
-
return false; // Return false if any nested item is not checked: false
|
226
|
-
}
|
227
|
-
}
|
228
|
-
}
|
229
|
-
|
230
|
-
return true; // Return true if all items are checked: false
|
231
|
-
};
|
@@ -18,7 +18,6 @@ import {
|
|
18
18
|
recursiveReturnOnlyParent,
|
19
19
|
removeChildrenIfParentChecked,
|
20
20
|
getChildIds,
|
21
|
-
areAllCheckedFalse
|
22
21
|
} from "./_helper_functions";
|
23
22
|
|
24
23
|
type MultiLevelSelectProps = {
|
@@ -59,7 +58,7 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
59
58
|
//this is essentially the return that the user will get when they use the kit
|
60
59
|
const [returnedArray, setReturnedArray] = useState([]);
|
61
60
|
//formattedData with checked and parent_id added
|
62
|
-
const [formattedData, setFormattedData] = useState(
|
61
|
+
const [formattedData, setFormattedData] = useState(treeData);
|
63
62
|
//toggle chevron in dropdown
|
64
63
|
//@ts-ignore
|
65
64
|
const [isToggled, setIsToggled] = useState<{ [id: number]: boolean }>({});
|
@@ -85,33 +84,26 @@ const MultiLevelSelect = (props: MultiLevelSelectProps) => {
|
|
85
84
|
}, [returnedArray, defaultReturn]);
|
86
85
|
|
87
86
|
useEffect(() => {
|
88
|
-
console.log("TREEDATA", treeData)
|
89
87
|
//Create new formattedData array for use
|
90
88
|
setFormattedData(addCheckedAndParentProperty(treeData));
|
91
|
-
//if any items already checked in first render, set return accordingly
|
92
|
-
const initialChecked = getCheckedItems(treeData)
|
93
|
-
console.log("INITIAl CHECKED", initialChecked)
|
94
|
-
const initialUnchecked = areAllCheckedFalse(treeData)
|
95
|
-
console.log("INIITAL UNCHECKED", initialUnchecked)
|
96
|
-
initialChecked && returnAllSelected && setReturnedArray(initialChecked)
|
97
|
-
initialChecked && !returnAllSelected && setDefaultReturn(initialChecked)
|
98
|
-
|
99
|
-
}, [treeData]);
|
100
|
-
|
101
|
-
useEffect(()=> {
|
102
89
|
// Function to handle clicks outside the dropdown
|
103
90
|
const handleClickOutside = (event: any) => {
|
104
91
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
105
92
|
setIsClosed(true);
|
106
93
|
}
|
107
94
|
};
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
95
|
+
//if any items already checked in first render, set return accordingly
|
96
|
+
const initialChecked = getCheckedItems(treeData)
|
97
|
+
initialChecked && returnAllSelected && setReturnedArray(initialChecked)
|
98
|
+
initialChecked && !returnAllSelected && setDefaultReturn(initialChecked)
|
99
|
+
|
100
|
+
// Attach the event listener
|
101
|
+
window.addEventListener("click", handleClickOutside);
|
102
|
+
// Clean up the event listener on unmount
|
103
|
+
return () => {
|
104
|
+
window.removeEventListener("click", handleClickOutside);
|
105
|
+
};
|
106
|
+
}, []);
|
115
107
|
|
116
108
|
//function to map over data and add parent_id + depth property to each item
|
117
109
|
const addCheckedAndParentProperty = (
|