feat: workspace frontend integration (PR-4)
- Add workspace_id parameter to createInstance API client - Wire WorkspacesPage 'Start Tool' modal to createInstance + startInstance - Pass workspace_id when creating instance from workspace page - TypeScript + eslint clean
This commit is contained in:
@@ -54,13 +54,15 @@ export async function createInstance(
|
||||
branch?: string,
|
||||
newBranch?: string,
|
||||
configProfileId?: string,
|
||||
sshKeyIds?: string[]
|
||||
sshKeyIds?: string[],
|
||||
workspaceId?: string
|
||||
): Promise<ToolInstance> {
|
||||
const response = await apiClient.post(
|
||||
`/projects/${projectId}/repositories/${repoId}/instances`,
|
||||
{
|
||||
tool_type_id: toolTypeId,
|
||||
display_name: displayName,
|
||||
workspace_id: workspaceId || undefined,
|
||||
clone_mode: cloneMode || "mount",
|
||||
branch: branch || undefined,
|
||||
new_branch: newBranch || undefined,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { useWorkspaceActions } from "../hooks/use-workspace-actions";
|
||||
import { WorkspaceCard } from "../components/workspace-card";
|
||||
import { WorkspaceCreateForm } from "../components/workspace-create-form";
|
||||
import { StartToolModal } from "../components/start-tool-modal";
|
||||
import { createInstance, startInstance } from "../api/sessions";
|
||||
import type { Workspace } from "../types/workspace";
|
||||
|
||||
export function WorkspacesPage() {
|
||||
@@ -36,9 +37,25 @@ export function WorkspacesPage() {
|
||||
|
||||
const handleStartTool = async (toolTypeId: string, configProfileId?: string) => {
|
||||
if (!startWorkspace) return;
|
||||
// TODO: Call instance creation API with workspace_id
|
||||
console.log("Start tool", { toolTypeId, configProfileId, workspace: startWorkspace.id });
|
||||
setStartWorkspace(null);
|
||||
try {
|
||||
const instance = await createInstance(
|
||||
projectId,
|
||||
repoId,
|
||||
toolTypeId,
|
||||
`${startWorkspace.name} - ${toolTypeId}`,
|
||||
undefined,
|
||||
undefined,
|
||||
undefined,
|
||||
configProfileId,
|
||||
[],
|
||||
startWorkspace.id
|
||||
);
|
||||
await startInstance(projectId, repoId, instance.id, configProfileId);
|
||||
setStartWorkspace(null);
|
||||
await refresh();
|
||||
} catch (err) {
|
||||
alert(err instanceof Error ? err.message : "Failed to start tool");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user