import type { Folder, GrpcRequest, HttpRequest, WebsocketRequest } from '@yaakapp-internal/models'; import { duplicateModel } from '@yaakapp-internal/models'; import { activeWorkspaceIdAtom } from '../hooks/useActiveWorkspace'; import { jotaiStore } from './jotai'; import { navigateToRequestOrFolderOrWorkspace } from './setWorkspaceSearchParams'; export async function duplicateRequestOrFolderAndNavigate( model: Folder | HttpRequest | GrpcRequest | WebsocketRequest | null, ) { if (model == null) { throw new Error('Cannot duplicate null item'); } const newId = await duplicateModel(model); const workspaceId = jotaiStore.get(activeWorkspaceIdAtom); if (workspaceId == null || model.model === 'folder') return; navigateToRequestOrFolderOrWorkspace(newId, model.model); }