From 2a11846d6e0cbbdc39ee71dc5dbec4ce6022f333 Mon Sep 17 00:00:00 2001
From: Denis Bykhov <bykhov.denis@gmail.com>
Date: Thu, 13 Apr 2023 23:24:52 +0600
Subject: [PATCH] Fix list undefined group (#2979)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
---
 .../src/components/list/ListCategories.svelte    |  2 +-
 plugins/view-resources/src/utils.ts              | 16 ++++------------
 2 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/plugins/view-resources/src/components/list/ListCategories.svelte b/plugins/view-resources/src/components/list/ListCategories.svelte
index 2ed26825eb..713db288e2 100644
--- a/plugins/view-resources/src/components/list/ListCategories.svelte
+++ b/plugins/view-resources/src/components/list/ListCategories.svelte
@@ -132,7 +132,7 @@
 </script>
 
 {#each categories as category, i (typeof category === 'object' ? category.name : category)}
-  {@const items = groupByKey === noCategory || category === undefined ? docs : getGroupByValues(groupByDocs, category)}
+  {@const items = groupByKey === noCategory ? docs : getGroupByValues(groupByDocs, category)}
   <ListCategory
     {elementByIndex}
     {indexById}
diff --git a/plugins/view-resources/src/utils.ts b/plugins/view-resources/src/utils.ts
index c841b1fec7..d071a12d69 100644
--- a/plugins/view-resources/src/utils.ts
+++ b/plugins/view-resources/src/utils.ts
@@ -506,11 +506,7 @@ export type FixedWidthStore = Record<string, number>
 
 export const fixedWidthStore = writable<FixedWidthStore>({})
 
-export function groupBy<T extends Doc> (
-  docs: T[],
-  key: string,
-  categories?: CategoryType[]
-): { [key: string | number]: T[] } {
+export function groupBy<T extends Doc> (docs: T[], key: string, categories?: CategoryType[]): Record<any, T[]> {
   return docs.reduce((storage: { [key: string]: T[] }, item: T) => {
     let group = getObjectValue(key, item) ?? undefined
 
@@ -536,16 +532,12 @@ export function groupBy<T extends Doc> (
 /**
  * @public
  */
-export function getGroupByValues<T extends Doc> (
-  groupByDocs: Record<string | number, T[]>,
-  category: CategoryType
-): T[] {
+export function getGroupByValues<T extends Doc> (groupByDocs: Record<any, T[]>, category: CategoryType): T[] {
   if (typeof category === 'object') {
     return groupByDocs[category.name] ?? []
-  } else if (category !== undefined) {
-    return groupByDocs[category] ?? []
+  } else {
+    return groupByDocs[category as any] ?? []
   }
-  return []
 }
 
 /**