Skip to content

fix: Studio report/infographics/poster/slide buttons vanish after AI toggle - #1902

Merged
ivokwee merged 1 commit into
develfrom
fix/studio-buttons-ai-toggle
Sep 28, 2026
Merged

ivokwee merged 1 commit into
develfrom
fix/studio-buttons-ai-toggle

Conversation

@ivokwee

@ivokwee ivokwee commented Sep 19, 2026

Copy link
Copy Markdown
Member

Summary

  • Fixes Studio buttons disappear after AI on/off #1898: turning "Enable AI" off then back on in Settings made the Studio board's Reports/Infographics/Poster/Slide deck buttons disappear permanently.
  • Root cause: the button row's wrapping navset_underline/nav_panel used the same label ("Studio") as the outer sidebar tab. The AI toggle's nav_hide()/nav_show() resolves its target tab-pane via a jQuery .find("div[data-value='Studio']"), which matches all descendants sharing that data-value, not just the sidebar's own pane. On hide, Shiny strips the active class from both matched panes; on show it only restores display on the outer one (the user's subsequent click re-activates it via Bootstrap's own tab logic) — the inner pane's active class is never restored, so it stays display:none forever.
  • Fix: give the inner nav_panel a distinct value = "studio-buttons" so it no longer collides with the outer tab's data-value="Studio".
  • Also aligned the board's content layout_columns to height = "100%" per this repo's OmicsBoardUI convention, instead of a hardcoded calc(100vh - 76px).

Test plan

  • Launched the app locally with the example dataset, opened Studio, confirmed all four buttons show.
  • Toggled Settings → AI Features → Enable AI off, then back on.
  • Returned to Studio and confirmed all four buttons are still visible (previously they vanished).

… toggle

Toggling AI off then on hid the button row permanently. The nested
single-panel navset_underline around the buttons used the same "Studio"
label as the outer sidebar tab. Shiny's nav_hide/nav_show for the AI
toggle resolves its target via a jQuery .find("div[data-value='Studio']")
that matches all descendants, not just the outer tab-pane, so it swept up
the inner pane too. On hide it strips the "active" class from both; on
show it only restores display on the outer one (via the user's tab
click), never the inner one, so the inner pane stays display:none.

Giving the inner nav_panel a distinct value avoids the data-value
collision. Also fixes the board's content layout_columns to use
height = "100%" per the OmicsBoardUI convention instead of a hardcoded
viewport calc().

Fixes #1898.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@ivokwee
ivokwee requested review from ESCRI11 and phisanti September 19, 2026 17:12
@ivokwee
ivokwee merged commit fe23185 into devel Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants