Add shadcn components: avatar, breadcrumb, checkbox, collapsible, command, dialog, dropdown-menu, label, popover, scroll-area, sheet, skeleton, tabs, textarea, tooltip. Add shared components: BreadcrumbBar, CommandPalette, CompanySwitcher, CommentThread, EmptyState, EntityRow, FilterBar, InlineEditor, MetricCard, PageSkeleton, PriorityIcon, PropertiesPanel, StatusIcon, SidebarNavItem/Section. Add contexts for breadcrumbs, dialogs, and side panels. Add keyboard shortcut hook and utility helpers. Update layout, sidebar, and main app shell. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
12 lines
296 B
TypeScript
12 lines
296 B
TypeScript
export function groupBy<T>(items: T[], keyFn: (item: T) => string): Record<string, T[]> {
|
|
const result: Record<string, T[]> = {};
|
|
for (const item of items) {
|
|
const key = keyFn(item);
|
|
if (!result[key]) {
|
|
result[key] = [];
|
|
}
|
|
result[key].push(item);
|
|
}
|
|
return result;
|
|
}
|