Skip to content

Commit

Permalink
Fix issue with additional categories on embed view
Browse files Browse the repository at this point in the history
Signed-off-by: Cintia Sánchez García <cynthiasg@icloud.com>
  • Loading branch information
cynthia-sg committed Jan 20, 2025
1 parent 24405fe commit b2f8e92
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 13 deletions.
2 changes: 1 addition & 1 deletion ui/webapp/src/layout/navigation/EmbedModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ const EmbedModal = () => {
const isVisible = createMemo(() => isExploreSection(location.pathname));
const isEmbedSetupActive = () => location.pathname === EMBED_SETUP_PATH;
const [visibleModal, setVisibleModal] = createSignal<boolean>(isEmbedSetupActive());
const categoriesList = () => sortBy(itemsDataGetter.getCategoriesAndSubcategoriesList(), ['name']);
const categoriesList = () => sortBy(itemsDataGetter.getCategoriesAndSubcategoriesWithItems(), ['name']);
const [subcategoriesList, setSubcategoriesList] = createSignal<Subcategory[]>(
sortBy(categoriesList()[0].subcategories, ['name'])
);
Expand Down
39 changes: 27 additions & 12 deletions ui/webapp/src/utils/itemsDataGetter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -165,29 +165,44 @@ export class ItemsDataGetter {
}

// Get categories and subcategories list with items
public getCategoriesAndSubcategoriesList(): Category[] {
const list: { [key: string]: string[] } = {};
public getCategoriesAndSubcategoriesWithItems(): Category[] {
const categoriesToKeep: { [key: string]: string[] } = {};
window.baseDS.items.forEach((i: Item) => {
if (list[i.category]) {
list[i.category].push(i.subcategory);
if (categoriesToKeep[i.category]) {
if (!categoriesToKeep[i.category].includes(i.subcategory)) {
categoriesToKeep[i.category].push(i.subcategory);
}
} else {
list[i.category] = [i.subcategory];
categoriesToKeep[i.category] = [i.subcategory];
}
// Add additional categories
if (i.additional_categories) {
i.additional_categories.forEach((ac: AdditionalCategory) => {
if (categoriesToKeep[ac.category]) {
if (!categoriesToKeep[ac.category].includes(ac.subcategory)) {
categoriesToKeep[ac.category].push(ac.subcategory);
}
} else {
categoriesToKeep[ac.category] = [ac.subcategory];
}
});
}
});
const categories: Category[] = [];

const categoriesWithItems: Category[] = [];
window.baseDS.categories.forEach((c: Category) => {
if (list[c.name]) {
const subcategories: Subcategory[] = [];
if (categoriesToKeep[c.name]) {
const subcategoriesWithItems: Subcategory[] = [];
c.subcategories.forEach((s: Subcategory) => {
if (list[c.name].includes(s.name)) {
subcategories.push(s);
if (categoriesToKeep[c.name].includes(s.name)) {
subcategoriesWithItems.push(s);
}
});
categories.push({ ...c, subcategories: subcategories });
categoriesWithItems.push({ ...c, subcategories: subcategoriesWithItems });
}
});

return categories;
return categoriesWithItems;
}

// Extend items with crunchbase and github data
Expand Down

0 comments on commit b2f8e92

Please sign in to comment.