diff --git a/src-web/components/NewSidebar.tsx b/src-web/components/NewSidebar.tsx
index 8a24f766..8f10cae0 100644
--- a/src-web/components/NewSidebar.tsx
+++ b/src-web/components/NewSidebar.tsx
@@ -25,8 +25,9 @@ import { activeCookieJarAtom } from '../hooks/useActiveCookieJar';
import { activeEnvironmentAtom } from '../hooks/useActiveEnvironment';
import { activeFolderIdAtom } from '../hooks/useActiveFolderId';
import { activeRequestIdAtom } from '../hooks/useActiveRequestId';
-import { activeWorkspaceAtom } from '../hooks/useActiveWorkspace';
+import { activeWorkspaceAtom, activeWorkspaceIdAtom } from '../hooks/useActiveWorkspace';
import { allRequestsAtom } from '../hooks/useAllRequests';
+import { getCreateDropdownItems } from '../hooks/useCreateDropdownItems';
import { getGrpcRequestActions } from '../hooks/useGrpcRequestActions';
import { useHotKey } from '../hooks/useHotKey';
import { getHttpRequestActions } from '../hooks/useHttpRequestActions';
@@ -52,80 +53,9 @@ import { Tree } from './core/tree/Tree';
import type { TreeItemProps } from './core/tree/TreeItem';
import { GitDropdown } from './GitDropdown';
-type Model = Workspace | Folder | HttpRequest | GrpcRequest | WebsocketRequest;
+type SidebarModel = Workspace | Folder | HttpRequest | GrpcRequest | WebsocketRequest;
-const opacitySubtle = 'opacity-80';
-
-function getItemKey(item: Model) {
- const responses = jotaiStore.get(httpResponsesAtom);
- const latestResponse = responses.find((r) => r.requestId === item.id) ?? null;
- const url = 'url' in item ? item.url : 'n/a';
- const method = 'method' in item ? item.method : 'n/a';
- return [
- item.id,
- item.name,
- url,
- method,
- latestResponse?.elapsed,
- latestResponse?.id ?? 'n/a',
- ].join('::');
-}
-
-const SidebarLeftSlot = memo(function SidebarLeftSlot({
- treeId,
- item,
-}: {
- treeId: string;
- item: Model;
-}) {
- if (item.model === 'folder') {
- return