express.ui.notification_show
express.ui.notification_show(
ui,*,
=None,
action=5,
duration=True,
close_buttonid=None,
type='default',
=None,
session )
Show a notification to the user.
A notification is a message that appears near the bottom corner of the app. Notifications normally disappear after a short period of time, and should multiple notifications appear together, they will stack on top of one another.
Parameters
ui : TagChild
-
Contents of the notification message.
action : Optional[TagChild] = None
-
Message content that represents an action. For example, this could be a link that the user can click on. This is separate from ui so customized layouts can handle the main notification content separately from the action content.
duration : Optional[int | float] = 5
-
Number of seconds to display the message before it disappears. Use
None
to prevent the message from disappearing automatically. The user will need to click the corner of the notification to close it. close_button : bool = True
-
If
True
, display a button which will make the notification disappear when clicked. IfFalse
do not display. id : Optional[str] = None
-
An optional unique identifier for the notification. If supplied, any existing notification with the same
id
will be replaced with this one (otherwise, a new notification is created). type : Literal[‘default’, ‘message’, ‘warning’, ‘error’] = 'default'
-
A string which controls the color of the notification. This should be one of “default” (gray), “message” (blue), “warning” (yellow), or “error” (red).
session : Optional[
Session
] = None-
The
Session
in which the notification should appear. If not provided, the session is inferred viaget_current_session
.
Returns
: str
-
The notification’s
id
.
See Also
Examples
#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400
## file: app.py
from shiny import reactive
from shiny.express import input, ui
ui.input_action_button("show", "Show")
ui.input_action_button("remove", "Remove")
ids: list[str] = []
n: int = 0
@reactive.effect
@reactive.event(input.show)
def _():
global ids
global n
# Save the ID for removal later
id = ui.notification_show("Message " + str(n), duration=None)
ids.append(id)
n += 1
@reactive.effect
@reactive.event(input.remove)
def _():
global ids
if ids:
ui.notification_remove(ids.pop())