Team screen (desktop view) and projects screen + switch Teams (mobile view) quality of life improvements - #548
Conversation
…t using theme layout gap and a vertical Divider
…d of pending upload changes
…s on theme layout gap
…me layout gap and wrap it in CardSizeProvider
…panels share the tallest card's height
…rid container spaced on theme layout gap
…er with TeamPanel
…ared height, and an absolutely positioned ProjectMenu
…rd height, and lift ProjectDialog out of the card
…g so it sits inside the card corner
…at TeamPanel replaces them
… from TeamPanel element rigidity
…y copy-error path and disable card tooltips at mobile width
…entLayout, move ProjectsScreen actions into a header, add columnSx, and drop redundant button flags
There was a problem hiding this comment.
Pull request overview
Quality-of-life UI updates to the renderer’s Team and Projects-related screens, improving card layout consistency/affordances and reorganizing key actions in mobile layouts.
Changes:
- Introduces shared card-height measurement so project cards can align to the tallest card (with ResizeObserver/MutationObserver measurement).
- Refactors Team/Projects/Switch Teams layouts to use new panel/layout primitives and header-based action placement.
- Adds/updates unit and Cypress coverage around pending uploads subscriptions and Switch Teams behavior.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| src/renderer/src/store/upload/pendingMediaUploads.ts | Adds same-window change event + subscription API for pending media uploads. |
| src/renderer/src/store/upload/pendingMediaUploads.test.ts | Adds tests for the new subscription behavior and minor formatting adjustments. |
| src/renderer/src/routes/TeamScreen.tsx | Updates desktop Team screen layout to use Box/Divider and shared spacing. |
| src/renderer/src/routes/SwitchTeams.tsx | Refactors Switch Teams screen into a header/content layout and updates settings/actions presentation. |
| src/renderer/src/routes/SwitchTeams.cy.tsx | Rebuilds Cypress coverage with richer mocks and more granular assertions for Switch Teams. |
| src/renderer/src/routes/ProjectsScreen.tsx | Moves actions into a secondary header and adjusts project list layout. |
| src/renderer/src/control/TeamPaper.tsx | Removes legacy Team panel styled components. |
| src/renderer/src/control/layoutSx.ts | Adds columnSx layout helper. |
| src/renderer/src/control/index.ts | Removes export of deleted TeamPaper module. |
| src/renderer/src/components/Team/useCardSize.ts | Adds hooks for measuring/reporting card height and consuming tallest height. |
| src/renderer/src/components/Team/TeamProjects.tsx | Wraps team projects view in CardSizeProvider and switches layout container. |
| src/renderer/src/components/Team/TeamPanel.tsx | Adds a reusable Team panel component with header + grid content layout. |
| src/renderer/src/components/Team/TeamItem.tsx | Refactors team panel rendering to use TeamPanel and updated action layout. |
| src/renderer/src/components/Team/TeamActions.tsx | Uses useSyncExternalStore to live-update pending upload badge and adjusts action layout. |
| src/renderer/src/components/Team/ProjectMenu.tsx | Makes the project menu always visible and adjusts button styling/exports. |
| src/renderer/src/components/Team/ProjectCard.tsx | Refactors project cards to CardActionArea layout, always-visible menu, and shared height behavior. |
| src/renderer/src/components/Team/PersonalItem.tsx | Refactors personal panel rendering to use TeamPanel and updated action layout. |
| src/renderer/src/components/Team/index.ts | Exports TeamPanel from the Team barrel. |
| src/renderer/src/components/Team/CardSize.tsx | Adds CardSizeContext/CardSizeProvider for tallest-card height coordination. |
| src/renderer/src/components/Team/AddCard.tsx | Refactors add-project card to new CardActionArea/Grid layout and shared height usage. |
| src/renderer/src/components/PassageDetail/mobile/MobileStepComplete.tsx | Removes an unused MUI import. |
| src/renderer/src/components/PassageDetail/Internalization/ProjectResourceConfigure.tsx | Simplifies control imports. |
Suppressed comments (1)
src/renderer/src/routes/ProjectsScreen.tsx:239
- Wrap the project card grid in
CardSizeProviderso all cards can report/consume the tallest measured height (matching the PR’s stated behavior).
<Grid container spacing={theme.layout.gap}>
{projects.map((p) => (
<ProjectCard key={p.id} project={p} />
))}
</Grid>
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
gtryus
left a comment
There was a problem hiding this comment.
devin reports this bug:
src/renderer/src/routes/TeamScreen.tsx:R90-98
Team actions sidebar expands to fill half the screen
The desktop team screen wraps the left action column in flexibleSx, the same grow rule as the projects grid beside it, so the narrow button column expands to roughly half the width instead of staying compact. The repo helper marks button-only columns as rigidSx.
…o half of the screen when on initial user with a single project)
Addressed this by reverting back the maxWidth restriction. |
This PR makes quality-of-life improvements to the existing Team screen (desktop view) and Projects screen + Switch Teams (mobile view). Notably: