feat(ui): mobile layout for issue detail page (PinPoint-74w)#1059
Open
timothyfroehlich wants to merge 14 commits intomainfrom
Open
feat(ui): mobile layout for issue detail page (PinPoint-74w)#1059timothyfroehlich wants to merge 14 commits intomainfrom
timothyfroehlich wants to merge 14 commits intomainfrom
Conversation
Redesigns the issue detail page for mobile screens with: - Back navigation row with issue ID chip (mobile-only) - Machine context link prominently above the title - Inline badge strip showing status, severity, priority, frequency - Owner requirements callout above the fold on mobile - Collapsible details panel (MobileDetailsPanel) replacing the full sidebar on small screens - Desktop sidebar layout preserved at md: breakpoint and above - data-testid attributes: mobile-nav-row, mobile-badge-strip, mobile-details-panel, mobile-timeline, mobile-comment-form Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Updates to Preview Branch (design/mobile-issue-detail) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR redesigns the issue detail page for mobile viewports with a compact, mobile-first layout. The desktop experience is preserved using responsive breakpoints.
Changes:
- Introduces MobileDetailsPanel component: a collapsible panel that replaces the desktop sidebar on mobile, showing assignee/watch count collapsed and expanding to reveal edit forms
- Restructures page layout: mobile shows back nav + issue ID chip, separate machine link, inline badges, and collapsible details; desktop maintains two-column sidebar layout
- Repositions owner requirements callout: appears above the fold on mobile, inline in timeline on desktop (avoids duplication)
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.
| File | Description |
|---|---|
| src/components/issues/MobileDetailsPanel.tsx | New client component with collapsible toggle for mobile issue details (assignee, watch count, edit forms, reporter, created date) |
| src/app/(app)/m/[initials]/i/[issueNumber]/page.tsx | Refactored to mobile-first layout with responsive breakpoints; adds mobile nav row, standalone machine link, and integrates MobileDetailsPanel |
| src/components/issues/IssueTimeline.tsx | Hides owner requirements callout on mobile (shown above fold instead); adds data-testid to comment form wrapper |
- Hide IssueSidebar on mobile with hidden md:block wrapper to prevent
duplicate content alongside MobileDetailsPanel
- Ensure machine name link is visible on all viewports (rename testid
from mobile-machine-link to machine-link, update comment)
- Switch PageShell to padded={false} with consolidated padding on inner div
- Rename data-testid mobile-comment-form to issue-comment-form (not mobile-only)
- Fix assignee initials in MobileDetailsPanel from 2-char to 1-char to match
desktop pattern
- Add WatchButton to MobileDetailsPanel collapsed row for authenticated users
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add top border to assignee-watch row (border-b → border-y) - Wrap expanded details content in card container (bg-card, rounded-xl, border) - Replace max-h-[600px] with max-h-[80vh] + overflow-auto for safer scaling - Reduce comment form padding on mobile (p-6 → p-4 sm:p-6) - Switch reporter/created meta from grid to flex row layout per mockup Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d 2) - Add sr-only "watching" label for screen reader accessibility on watch count - Rename data-testid mobile-badge-strip → issue-badge-strip (viewport-agnostic) - Rename data-testid mobile-timeline → issue-timeline (viewport-agnostic) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pages manage their own padding via PageShell or custom wrappers. The global p-6 caused double-padding, burning ~80px on mobile. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…etail # Conflicts: # src/components/layout/MainLayout.tsx
- Restores vertical padding to all pages (Dashboard, Admin, Issues, etc.) after MainLayout change. - Fixes alignment of 'No comments yet' empty state in issue timeline. - Verified mobile viewport integrity with no horizontal overflow.
- Adds py-8 to Privacy and Terms pages to match MainLayout refactor. - Fixes alignment of 'No comments yet' box in issue timeline (ml-16 -> ml-20).
- Remove waitForLoadState("networkidle") from loginAs() and test files;
replaced with toHaveURL() assertions and submitFormAndWaitForRedirect()
- Use scrollIntoView({ block: "center" }) in selectOption() to avoid
sticky header interception; drop force:true in favour of a normal click
- Center submit buttons before clicking in change-password tests
- Add .gemini/ to .gitignore (Gemini agent ephemeral control files)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…etail # Conflicts: # package.json # pnpm-lock.yaml
…machine status-overhaul created "unplayable" issues on TAF (The Addams Family), which escalated its computed status. When machines-crud ran in parallel and asserted TAF's status as "Needs Service", it found "Unplayable" instead. - Add Twilight Zone (TZ) to seed data as a dedicated machine for status-overhaul tests, isolating mutations from shared assertions - Point status-overhaul.spec.ts at TZ instead of TAF - Bump machines-crud minimum card count from 10 to 11 Closes PinPoint-da45 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
New file: src/components/issues/MobileDetailsPanel.tsx - Client component with useState for open/close toggle, animated with max-height + opacity transition, shows assignee display, watcher count, and Edit Details button, expands to show the full SidebarActions grid plus reporter and created date
Modified: src/app/(app)/m/[initials]/i/[issueNumber]/page.tsx - Mobile-first layout with back nav row + issue ID chip, machine context link, badge strip, owner callout, collapsible panel. Desktop layout unchanged at md: breakpoint. data-testid attributes: mobile-nav-row, mobile-badge-strip, mobile-details-panel, mobile-timeline, mobile-comment-form
Modified: src/components/issues/IssueTimeline.tsx - Owner requirements callout in the timeline is now hidden md:block to prevent duplication on mobile. Added data-testid=mobile-comment-form to the comment form wrapper.
Test plan
Closes PinPoint-74w
Generated with Claude Code
Update: Global Padding Refactor
Update: Global Padding Refactor