@@ -34,20 +34,36 @@ handler_shiny <- function(intrusiveness = getOption("progressr.intrusiveness.gui
3434 )
3535
3636 # # Default: The progression message updates Shiny 'message'
37- map_args <- function (state ) list (message = state $ message )
37+ map_args <- function (state , progression ) {
38+ message <- state $ message
39+ if (is.null(message )) return (list ())
40+ if (inherits(progression , " sticky" )) {
41+ list (detail = message )
42+ } else {
43+ list (message = message )
44+ }
45+ }
3846
3947 # # Should progress message update another Shiny field?
4048 if (" message" %in% names(map )) {
4149 if (map [" message" ] == " detail" ) {
42- map_args <- function (state ) list (detail = state $ message )
50+ map_args <- function (state , progression ) {
51+ message <- state $ message
52+ if (is.null(message )) return (list ())
53+ if (inherits(progression , " sticky" )) {
54+ list (message = message )
55+ } else {
56+ list (detail = message )
57+ }
58+ }
4359 }
4460 }
4561
4662 reporter <- local({
4763 list (
4864 update = function (config , state , progression , ... ) {
4965 amount <- if (config $ max_steps == 0 ) 1 else progression $ amount / config $ max_steps
50- args <- c(list (amount = amount ), map_args(state ))
66+ args <- c(list (amount = amount ), map_args(state , progression ))
5167 do.call(shiny :: incProgress , args = args )
5268 }
5369 )
0 commit comments