From f0942a526d5728c45f2ae79454e883fd5e000ef1 Mon Sep 17 00:00:00 2001 From: Reid Barber Date: Thu, 11 Nov 2021 10:50:16 -0600 Subject: [PATCH 1/2] handle no children in useTreeData --- packages/@react-stately/data/src/useTreeData.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@react-stately/data/src/useTreeData.ts b/packages/@react-stately/data/src/useTreeData.ts index c6feaf8ab5c..7da3631fb57 100644 --- a/packages/@react-stately/data/src/useTreeData.ts +++ b/packages/@react-stately/data/src/useTreeData.ts @@ -123,7 +123,7 @@ export function useTreeData(options: TreeOptions): TreeData initialItems = [], initialSelectedKeys, getKey = (item: any) => item.id || item.key, - getChildren = (item: any) => item.children || [] + getChildren = (item: any) => item.children } = options; let map = useMemo(() => new Map>(), []); @@ -133,7 +133,7 @@ export function useTreeData(options: TreeOptions): TreeData let [items, setItems] = useState(initialNodes); let [selectedKeys, setSelectedKeys] = useState(new Set(initialSelectedKeys || [])); - function buildTree(initialItems: T[], parentKey?: Key | null) { + function buildTree(initialItems: T[] = [], parentKey?: Key | null) { return initialItems.map(item => { let node: TreeNode = { key: getKey(item), From d3065f6519eabb624cc6729d7f02303bcbfd49db Mon Sep 17 00:00:00 2001 From: Reid Barber Date: Thu, 11 Nov 2021 10:50:28 -0600 Subject: [PATCH 2/2] fix tests to cover --- packages/@react-stately/data/test/useTreeData.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@react-stately/data/test/useTreeData.test.js b/packages/@react-stately/data/test/useTreeData.test.js index 49bd45b3386..61a48671439 100644 --- a/packages/@react-stately/data/test/useTreeData.test.js +++ b/packages/@react-stately/data/test/useTreeData.test.js @@ -31,7 +31,7 @@ const initial = [ ]; let getKey = (item) => item.name; -let getChildren = (item) => item.children || []; +let getChildren = (item) => item.children; describe('useTreeData', function () { it('should construct a tree using initial data', function () {