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); }