/** * WordPress Dependencies */ import { isEmpty } from "lodash"; import { __ } from "@wordpress/i18n"; import { useEffect } from "react"; import { tablebergIcons } from "./icons"; import { SearchControl, MenuGroup, MenuItem, PanelBody, } from "@wordpress/components"; export interface IconsLibrarySidebarProps { subCategoryFilter: string; search: string; setSubCategoryFilter: (subCategoryFilter: string) => void; setSearch: (search: string) => void; mainCategoryFilter: string; setMainCategoryFilter: (mainCategoryFilter: string) => void; } function Sidebar(props: IconsLibrarySidebarProps) { const { search, setSearch, subCategoryFilter, setSubCategoryFilter, setMainCategoryFilter, } = props; const preparedIconPacks = tablebergIcons.map(iconPack => { const categories = iconPack?.categories; const allCategories: Array<{ name: string; title: string; count: number; }> = categories?.map(category => { const categoryName = category?.name; const categoryIcons = iconPack?.icons.filter(icon => { return icon?.categories?.includes(categoryName); }); return { ...category, count: categoryIcons.length }; }); allCategories.unshift({ name: "all-" + iconPack?.type, title: __("All", "tableberg"), count: iconPack?.icons.length, }); return { ...iconPack, categories: allCategories }; }); useEffect(() => { setSubCategoryFilter(preparedIconPacks[0]?.categories?.[0]?.name); }, []); return (