feat: workspace-first UI refresh - PR-3 projects page + routing cleanup
- Rewrite ProjectsPage with inline repository and workspace display - Expandable project cards showing repos + workspace chips - Inline workspace creation from project page (New Workspace button per repo) - Workspace chips link to workspace detail page - Sync/delete actions on workspace chips - Update Project type: add ProjectWithRepos, RepositorySummary, WorkspaceSummary - Update listProjects API to return ProjectWithRepos[] - Update dashboard, sessions, config-profiles to use ProjectWithRepos - Remove old /projects/:projectId route (RepoWorkspace) - Add chevron icons to Icon component - Projects page CSS: project-toggle, repo-block, workspace-grid, workspace-chip - TypeScript + eslint clean Quality gates: tsc --noEmit clean, eslint clean
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||
|
||||
import { listProjects } from "../api/projects";
|
||||
import type { Project } from "../types";
|
||||
import type { ProjectWithRepos } from "../types";
|
||||
import { listRepositories, type GitRepository } from "../api/git_repositories";
|
||||
import {
|
||||
getUserSessions,
|
||||
@@ -24,7 +24,7 @@ export const SessionsPage = () => {
|
||||
const [sessions, setSessions] = useState<Session[]>([]);
|
||||
const [lastSessionId, setLastSessionId] = useState<string | null>(null);
|
||||
|
||||
const [projects, setProjects] = useState<Project[]>([]);
|
||||
const [projects, setProjects] = useState<ProjectWithRepos[]>([]);
|
||||
const [repositories, setRepositories] = useState<GitRepository[]>([]);
|
||||
const [toolTypes, setToolTypes] = useState<ToolType[]>([]);
|
||||
const [selectedProject, setSelectedProject] = useState<string>("");
|
||||
|
||||
Reference in New Issue
Block a user