Skip to content

Fix: Detail Page Default Tab Rendering#7074

Merged
WithoutPants merged 1 commit into
stashapp:developfrom
CynicalAtropos:fix/detail-tabs-default-resolution
Jun 26, 2026
Merged

Fix: Detail Page Default Tab Rendering#7074
WithoutPants merged 1 commit into
stashapp:developfrom
CynicalAtropos:fix/detail-tabs-default-resolution

Conversation

@CynicalAtropos

Copy link
Copy Markdown
Contributor

Description

Fixes detail page tab rendering when the route tab is missing or set to default.

The shared detail tab hook now resolves a render-safe activeTabKey before rendering Tabs, treating missing tab values and the internal default sentinel as the populated default tab. Performer, group, studio, and tag detail pages now use that resolved key for tab activation and panel queries.

This removes the per-page workaround that hid tabs until the URL effect ran, and also covers group detail pages and /default URLs.

Related Issue

Fixes #6798
Supercedes #6923
Also resolves the "Performer galleries not shown if performer has no scenes" bug in the bug tracker project board I believe

Testing

  • pnpm.cmd run check
  • pnpm.cmd run lint:js
  • pnpm.cmd exec biome lint src/components/Shared/DetailsPage/Tabs.tsx src/components/Performers/PerformerDetails/Performer.tsx src/components/Groups/GroupDetails/Group.tsx src/components/Studios/StudioDetails/Studio.tsx src/components/Tags/TagDetails/Tag.tsx
  • pnpm.cmd exec biome format src/components/Shared/DetailsPage/Tabs.tsx src/components/Performers/PerformerDetails/Performer.tsx src/components/Groups/GroupDetails/Group.tsx src/components/Studios/StudioDetails/Studio.tsx src/components/Tags/TagDetails/Tag.tsx
  • git diff --check
  • Manually confirmed with /[type]/[id], /[type]/[id]/default, and /[type]/[id]/test for performers, groups, studios, and tags for both when the first tab was populated and when the default tab populated was not the first.

Screenshots

N/A

Checklist

  • I have read and understood the Contributing document.
  • I have read and understood the AI Usage Policy document.
  • [] I have made corresponding changes to the documentation (if applicable).

AI Usage Disclosure

  • I have used AI tools to assist with this pull request, and I have disclosed the tools and how I used them below.

Used Codex to investigate the tab routing issue, draft the shared activeTabKey handling, and then manually reviewed and tested the changes.

Additional Context

The default tab value is accepted by several detail routes but does not correspond to a rendered Tab. Resolving it before render prevents React-Bootstrap from receiving an undefined or non-rendered active key, while the URL is still canonicalized afterward with history.replace.

@WithoutPants WithoutPants added bug Fix for a reproduced bug improvement Something needed tweaking. labels Jun 26, 2026
@WithoutPants WithoutPants added this to the Version 0.32.0 milestone Jun 26, 2026
@WithoutPants WithoutPants merged commit f956573 into stashapp:develop Jun 26, 2026
11 checks passed
@CynicalAtropos CynicalAtropos deleted the fix/detail-tabs-default-resolution branch June 26, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Fix for a reproduced bug improvement Something needed tweaking.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Content fails to render when opening performer page in new tab/window under certain conditions

2 participants