From 2d489fe2b6d5fd027ff1e5b95112f5d5268eb39c Mon Sep 17 00:00:00 2001 From: Thomas Petersen Date: Thu, 30 Jul 2026 15:38:22 +0200 Subject: [PATCH] fix(desktop): remove remaining Projects panel fills Let the Projects page surface flow through repository lists and project detail content while preserving borders and interactive feedback. Signed-off-by: Thomas Petersen --- .../src/features/projects/ui/ProjectCards.tsx | 3 +- .../projects/ui/ProjectCommitDetailPanel.tsx | 6 +- .../projects/ui/ProjectDetailFeedPanels.tsx | 23 ++++-- .../projects/ui/ProjectOverviewPanel.tsx | 6 +- .../ProjectPullRequestFilesChangedPanel.tsx | 9 ++- .../projects/ui/ProjectRepositoryPanel.tsx | 15 +++- .../projects/ui/ProjectWorkspaceTabs.tsx | 17 ++++- .../projects/ui/ProjectsIssuesList.tsx | 10 ++- .../projects/ui/ProjectsPullRequestsList.tsx | 10 ++- .../src/features/projects/ui/ProjectsView.tsx | 5 +- .../projects/ui/projectListRowStyles.ts | 2 +- .../projects/ui/projectPanelStyles.ts | 8 ++ desktop/tests/e2e/project-pr-review.spec.ts | 73 +++++++++++++++++++ 13 files changed, 162 insertions(+), 25 deletions(-) diff --git a/desktop/src/features/projects/ui/ProjectCards.tsx b/desktop/src/features/projects/ui/ProjectCards.tsx index 52308f7a05..4f4fef7678 100644 --- a/desktop/src/features/projects/ui/ProjectCards.tsx +++ b/desktop/src/features/projects/ui/ProjectCards.tsx @@ -421,7 +421,8 @@ export function ProjectGridCard({ }: ProjectItemProps) { return ( diff --git a/desktop/src/features/projects/ui/ProjectCommitDetailPanel.tsx b/desktop/src/features/projects/ui/ProjectCommitDetailPanel.tsx index c6122dcfe4..859a769c41 100644 --- a/desktop/src/features/projects/ui/ProjectCommitDetailPanel.tsx +++ b/desktop/src/features/projects/ui/ProjectCommitDetailPanel.tsx @@ -10,6 +10,7 @@ import { } from "@/features/profile/lib/identity"; import type { ProjectRepoCommit, ProjectRepoDiff } from "@/shared/api/types"; import { CopyCommitHashButton } from "./ProjectCommitCopyButton"; +import { PROJECT_DETAIL_PANEL_CLASS } from "./projectPanelStyles"; import { ProfileIdentityButton } from "./ProjectProfileIdentity"; import { ProjectDiffFilesPanel } from "./ProjectPullRequestFilesChangedPanel"; import { ProjectRichContent } from "./ProjectRichContent"; @@ -56,7 +57,10 @@ export function ProjectCommitDetailPanel({ return (
-
+

Commit from {authorLabel} diff --git a/desktop/src/features/projects/ui/ProjectDetailFeedPanels.tsx b/desktop/src/features/projects/ui/ProjectDetailFeedPanels.tsx index 5396ec5cfa..6676044c86 100644 --- a/desktop/src/features/projects/ui/ProjectDetailFeedPanels.tsx +++ b/desktop/src/features/projects/ui/ProjectDetailFeedPanels.tsx @@ -25,6 +25,10 @@ import { ProjectFeedRowCluster, ProjectFeedRowMonoCell, } from "./ProjectFeedRow"; +import { + PROJECT_DETAIL_PANEL_CLASS, + PROJECT_DETAIL_PANEL_MESSAGE_CLASS, +} from "./projectPanelStyles"; import { ProfileIdentityButton } from "./ProjectProfileIdentity"; function pluralize(count: number, singular: string, plural = `${singular}s`) { @@ -66,14 +70,17 @@ export function ContributorsPanel({ if (rows.length === 0) { return ( -

+

No git contributors are available yet.

); } return ( -
+
{rows.map((row, index) => (
+

Loading activity…

); @@ -152,7 +162,10 @@ export function ActivityPanel({ if (commits.length === 0) { return ( -

+

{error ? "Could not load repository activity from git." : "No commits are available yet."} @@ -161,7 +174,7 @@ export function ActivityPanel({ } return ( -

+

diff --git a/desktop/src/features/projects/ui/ProjectOverviewPanel.tsx b/desktop/src/features/projects/ui/ProjectOverviewPanel.tsx index d64b3081dc..d0e5c76bef 100644 --- a/desktop/src/features/projects/ui/ProjectOverviewPanel.tsx +++ b/desktop/src/features/projects/ui/ProjectOverviewPanel.tsx @@ -23,6 +23,7 @@ import { } from "@/features/projects/lib/projectLanguages"; import { normalizePubkey } from "@/shared/lib/pubkey"; import { UserAvatar } from "@/shared/ui/UserAvatar"; +import { PROJECT_DETAIL_PANEL_CLASS } from "./projectPanelStyles"; import { ReadmePanel } from "./ProjectReadmePanel"; import type { RepoSourceHeaderControls } from "./ProjectRepositorySource"; @@ -152,7 +153,10 @@ export function ProjectOverviewPanel({ const latestCommit = snapshot?.latestCommit ?? null; return ( -
+
{/* ReadmePanel renders its own "no README" fallback while keeping the branch + source controls reachable. */} diff --git a/desktop/src/features/projects/ui/ProjectPullRequestFilesChangedPanel.tsx b/desktop/src/features/projects/ui/ProjectPullRequestFilesChangedPanel.tsx index c257457d31..ae41725788 100644 --- a/desktop/src/features/projects/ui/ProjectPullRequestFilesChangedPanel.tsx +++ b/desktop/src/features/projects/ui/ProjectPullRequestFilesChangedPanel.tsx @@ -39,6 +39,7 @@ import type { UserProfileLookup } from "@/features/profile/lib/identity"; import { useIdentityQuery } from "@/shared/api/hooks"; import { cn } from "@/shared/lib/cn"; import type { ProjectRepoDiff, ProjectRepoDiffFile } from "@/shared/api/types"; +import { PROJECT_DETAIL_PANEL_CLASS } from "./projectPanelStyles"; import { ProjectPullRequestInlineCommentThread } from "./ProjectPullRequestInlineComments"; function fileName(path: string) { @@ -772,9 +773,7 @@ export function ProjectDiffFilesPanel({ inlineComments?: InlineCommentControls; subjectLabel: string; }) { - const outerBorderClass = embedded - ? "" - : "rounded-xl border border-border/60 bg-card"; + const outerBorderClass = embedded ? "" : PROJECT_DETAIL_PANEL_CLASS; const [query, setQuery] = React.useState(""); const [selectedPath, setSelectedPath] = React.useState(null); const files = diff?.files ?? []; @@ -818,6 +817,7 @@ export function ProjectDiffFilesPanel({ return (
Loading changed files…
@@ -832,6 +832,7 @@ export function ProjectDiffFilesPanel({ "space-y-1 p-4 text-sm text-muted-foreground", outerBorderClass, )} + data-project-detail-panel={embedded ? undefined : true} >

Could not load changed files for this {subjectLabel}.

{message ? ( @@ -850,6 +851,7 @@ export function ProjectDiffFilesPanel({ "p-6 text-center text-sm text-muted-foreground", outerBorderClass, )} + data-project-detail-panel={embedded ? undefined : true} > No changed files are available for this {subjectLabel} yet.
@@ -862,6 +864,7 @@ export function ProjectDiffFilesPanel({ "grid min-h-0 overflow-hidden lg:grid-cols-[17rem_minmax(0,1fr)]", outerBorderClass, )} + data-project-detail-panel={embedded ? undefined : true} >