Skip to content

Commit 79b0f67

Browse files
committed
Updating to update_nav_panel
1 parent 53e0bfe commit 79b0f67

File tree

7 files changed

+32
-76
lines changed

7 files changed

+32
-76
lines changed

shiny/api-examples/show_nav_panel/app-core.py renamed to shiny/api-examples/update_nav_panel/app-core.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,22 @@ def server(input: Inputs, output: Outputs, session: Session):
3131
@reactive.effect()
3232
@reactive.event(input.hideTab)
3333
def _():
34-
ui.hide_nav_panel("tabs", target="Foo")
34+
ui.update_nav_panel("tabs", target="Foo", method="hide")
3535

3636
@reactive.effect()
3737
@reactive.event(input.showTab)
3838
def _():
39-
ui.show_nav_panel("tabs", target="Foo")
39+
ui.update_nav_panel("tabs", target="Foo", method="show")
4040

4141
@reactive.effect()
4242
@reactive.event(input.hideMenu)
4343
def _():
44-
ui.hide_nav_panel("tabs", target="More")
44+
ui.update_nav_panel("tabs", target="More", method="hide")
4545

4646
@reactive.effect()
4747
@reactive.event(input.showMenu)
4848
def _():
49-
ui.show_nav_panel("tabs", target="More")
49+
ui.update_nav_panel("tabs", target="More", method="show")
5050

5151

5252
app = App(app_ui, server)

shiny/api-examples/show_nav_panel/app-express.py renamed to shiny/api-examples/update_nav_panel/app-express.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,19 @@
2727
@reactive.effect()
2828
@reactive.event(input.hideTab)
2929
def _():
30-
ui.hide_nav_panel("tabs", target="Foo")
30+
ui.update_nav_panel("tabs", target="Foo", method="hide")
3131

3232
@reactive.effect()
3333
@reactive.event(input.showTab)
3434
def _():
35-
ui.show_nav_panel("tabs", target="Foo")
35+
ui.update_nav_panel("tabs", target="Foo", method="show")
3636

3737
@reactive.effect()
3838
@reactive.event(input.hideMenu)
3939
def _():
40-
ui.hide_nav_panel("tabs", target="More")
40+
ui.update_nav_panel("tabs", target="More", method="hide")
4141

4242
@reactive.effect()
4343
@reactive.event(input.showMenu)
4444
def _():
45-
ui.show_nav_panel("tabs", target="More")
45+
ui.update_nav_panel("tabs", target="More", method="show")

shiny/express/ui/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,9 @@
109109
notification_remove,
110110
nav_spacer,
111111
navbar_options,
112-
hide_nav_panel,
113112
insert_nav_panel,
114113
remove_nav_panel,
115-
show_nav_panel,
114+
update_nav_panel,
116115
Progress,
117116
Theme,
118117
value_box_theme,
@@ -297,9 +296,8 @@
297296
"navset_hidden",
298297
"navset_pill",
299298
"navset_pill_list",
300-
"hide_nav_panel",
299+
"update_nav_panel",
301300
"remove_nav_panel",
302-
"show_nav_panel",
303301
"navset_tab",
304302
"navset_underline",
305303
"navbar_options",

shiny/ui/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,9 @@
129129
navset_underline,
130130
)
131131
from ._navs_dynamic import (
132-
hide_nav_panel,
132+
update_nav_panel,
133133
insert_nav_panel,
134134
remove_nav_panel,
135-
show_nav_panel,
136135
)
137136
from ._notification import notification_remove, notification_show
138137
from ._output import (
@@ -303,10 +302,9 @@
303302
"navset_pill_list",
304303
"navset_hidden",
305304
"navset_bar",
306-
"hide_nav_panel",
307305
"insert_nav_panel",
308306
"remove_nav_panel",
309-
"show_nav_panel",
307+
"update_nav_panel",
310308
"navbar_options",
311309
# _notification
312310
"notification_show",

shiny/ui/_navs_dynamic.py

Lines changed: 14 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
__all__ = (
2-
"insert_nav_panel",
3-
"remove_nav_panel",
4-
"hide_nav_panel",
5-
"show_nav_panel",
6-
)
1+
__all__ = ("insert_nav_panel", "remove_nav_panel", "update_nav_panel")
72

83
import sys
94
from typing import Optional, Union
@@ -59,8 +54,7 @@ def insert_nav_panel(
5954
See Also
6055
--------
6156
~remove_nav_panel
62-
~show_nav_panel
63-
~hide_nav_panel
57+
~update_nav_panel
6458
~shiny.ui.nav_panel
6559
"""
6660

@@ -109,8 +103,7 @@ def remove_nav_panel(id: str, target: str, session: Optional[Session] = None) ->
109103
See Also
110104
--------
111105
~insert_nav_panel
112-
~show_nav_panel
113-
~hide_nav_panel
106+
~update_nav_panel
114107
~shiny.ui.nav_panel
115108
"""
116109

@@ -124,80 +117,47 @@ def remove_nav_panel(id: str, target: str, session: Optional[Session] = None) ->
124117

125118

126119
@add_example()
127-
def show_nav_panel(
128-
id: str, target: str, select: bool = False, session: Optional[Session] = None
120+
def update_nav_panel(
121+
id: str,
122+
target: str,
123+
method: Literal["show", "hide"],
124+
session: Optional[Session] = None,
129125
) -> None:
130126
"""
131-
Show a navigation item
127+
Show/hide a navigation item
132128
133129
Parameters
134130
----------
135131
id
136132
The `id` of the relevant navigation container (i.e., `navset_*()` object).
137133
target
138134
The `value` of an existing :func:`shiny.ui.nav` item to show.
139-
select
140-
Whether the nav item's content should also be shown.
135+
method
136+
The action to perform on the nav_panel (`"show"` or `"hide"`).
141137
session
142138
A :class:`~shiny.Session` instance. If not provided, it is inferred via
143139
:func:`~shiny.session.get_current_session`.
144140
145141
Note
146142
----
147-
For `show_nav_panel()` to be relevant/useful, a :func:`shiny.ui.nav` item must
148-
have been hidden using :func:`~hide_nav_panel`.
143+
On reveal, the `nav_panel` will not be the active tab. To change the active tab, use `~update_navs()`
149144
150145
See Also
151146
--------
152-
~hide_nav_panel
153147
~insert_nav_panel
154148
~remove_nav_panel
155149
~shiny.ui.nav_panel
150+
~update_navs
156151
"""
157152

158153
session = require_active_session(session)
159154

160155
id = resolve_id(id)
161-
if select:
162-
update_navs(id, selected=target)
163156

164157
msg = {
165158
"inputId": id,
166159
"target": target,
167-
"type": "show",
168-
}
169-
170-
session._send_message_sync({"shiny-change-tab-visibility": msg})
171-
172-
173-
def hide_nav_panel(id: str, target: str, session: Optional[Session] = None) -> None:
174-
"""
175-
Hide a navigation item
176-
177-
Parameters
178-
----------
179-
id
180-
The `id` of the relevant navigation container (i.e., `navset_*()` object).
181-
target
182-
The `value` of an existing :func:`shiny.ui.nav` item to hide.
183-
session
184-
A :class:`~shiny.Session` instance. If not provided, it is inferred via
185-
:func:`~shiny.session.get_current_session`.
186-
187-
See Also
188-
--------
189-
~show_nav_panel
190-
~insert_nav_panel
191-
~remove_nav_panel
192-
~shiny.ui.nav_panel
193-
"""
194-
195-
session = require_active_session(session)
196-
197-
msg = {
198-
"inputId": resolve_id(id),
199-
"target": target,
200-
"type": "hide",
160+
"type": method,
201161
}
202162

203163
session._send_message_sync({"shiny-change-tab-visibility": msg})

tests/playwright/shiny/components/dynamic_navs/app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,22 @@ def _():
5656
@reactive.effect()
5757
@reactive.event(input.hideTab)
5858
def _():
59-
ui.hide_nav_panel("tabs", target="Foo")
59+
ui.update_nav_panel("tabs", target="Foo", method="hide")
6060

6161
@reactive.effect()
6262
@reactive.event(input.showTab)
6363
def _():
64-
ui.show_nav_panel("tabs", target="Foo")
64+
ui.update_nav_panel("tabs", target="Foo", method="show")
6565

6666
@reactive.effect()
6767
@reactive.event(input.hideMenu)
6868
def _():
69-
ui.hide_nav_panel("tabs", target="Menu")
69+
ui.update_nav_panel("tabs", target="Menu", method="hide")
7070

7171
@reactive.effect()
7272
@reactive.event(input.showMenu)
7373
def _():
74-
ui.show_nav_panel("tabs", target="Menu")
74+
ui.update_nav_panel("tabs", target="Menu", method="show")
7575

7676

7777
app = App(app_ui, server)

tests/playwright/shiny/components/express_navs/app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ def _():
2222
@reactive.effect()
2323
@reactive.event(input.showTab)
2424
def _():
25-
ui.show_nav_panel("navset", target="Panel 2")
25+
ui.update_nav_panel("navset", target="Panel 2", method="show")
2626

2727
@reactive.effect()
2828
@reactive.event(input.hideTab)
2929
def _():
30-
ui.hide_nav_panel("navset", target="Panel 2")
30+
ui.update_nav_panel("navset", target="Panel 2", method="hide")
3131

3232
@reactive.effect()
3333
@reactive.event(input.deleteTabs)

0 commit comments

Comments
 (0)