Upgrade notes for Shiny 1.4.0
Full changelog
Breaking changes
- Resolved #2554: Upgraded jQuery from v.1.12.4 to v3.4.1 and bootstrap from v3.3.7 to v3.4.1. (#2557). Since the jQuery upgrade may introduce breaking changes to user code, there is an option to switch back to the old version by setting
options(shiny.jquery.version = 1)
. If you’ve hard-codedshared/jquery[.min].js
in the HTML of your Shiny app, in order to downgrade, you’ll have to change that filepath toshared/legacy/jquery[.min].js
.
Improvements
Resolved #1433:
plotOutput()
’s coordmap info now includes discrete axis limits for ggplot2 plots. As a result, any shinytest tests that contain ggplot2 plots with discrete axes (that were recorded before this change) will now report differences that can safely be updated. This new coordmap info was added to correctly infer what data points are within an input brush and/or near input click/hover in scenarios where a non-trivial discrete axis scale is involved (e.g., wheneverscale_[x/y]_discrete(limits = ...)
and/or free scales across multiple discrete axes are used). (#2410)Resolved #2402: An informative warning is now thrown for mis-specified (date) strings in
dateInput()
,updateDateInput()
,dateRangeInput()
, andupdateDateRangeInput()
. (#2403)If the
shiny.autoload.r
option is set toTRUE
, all files ending in.r
or.R
contained in a directory namedR/
adjacent to your application are sourced when your app is started. This will become the default Shiny behavior in a future release (#2547)Resolved #2442: The
shiny:inputchanged
JavaScript event now triggers on the related input element instead ofdocument
. Existing event listeners bound todocument
will still detect the event due to event bubbling. (#2446)Fixed #1393, #2223: For plots with any interactions enabled, the image is no longer draggable. (#2460)
Resolved #2469:
renderText
now takes asep
argument that is passed tocat
. (#2497)Added
resourcePaths()
andremoveResourcePaths()
functions. (#2459)Resolved #2433: An informative warning is now thrown if subdirectories of the app’s
www/
directory are masked by other resource prefixes and/or the same resource prefix is mapped to different local file paths. (#2434)Resolved #2478:
cmd + shift + f3
andctrl + shift + f3
can now be used to add a reactlog mark. If reactlog keybindings are used and the reactlog is not enabled, an error page is displayed showing how to enable reactlog recordings. (#2560)
Bug fixes
Partially resolved #2423: Reactivity in Shiny leaked some memory, because R can leak memory whenever a new symbols is interned, which happens whenever a new name/key is used in an environment. R now uses the fastmap package, which avoids this problem. (#2429)
Fixed #2267: Fixed a memory leak with
invalidateLater
. (#2555)Fixed #1548: The
reactivePoll
function leaked an observer; that is the observer would continue to exist even if thereactivePoll
object was no longer accessible. #2522Fixed #2116: Fixed an issue where dynamic tabs could not be added when on a hosted platform. (#2545)
Resolved #2515:
selectInput()
andselectizeInput()
now deal appropriately with named factors. Note thatupdateSelectInput()
andupdateSelectizeInput()
do not yet handle factors; their behavior is unchanged. (#2524, #2540, #2625)Resolved #2471: Large file uploads to a Windows computer were slow. (#2579)
Fixed #2387: Updating a
sliderInput()
’s type from numeric to date no longer changes the rate policy from debounced to immediate. More generally, updating an input binding with a new type should (no longer) incorrectly alter the input rate policy. (#2404)Fixed #868: If an input is initialized with a
NULL
label, it can now be updated with a string. Moreover, if an input label is initialized with a string, it can now be removed by updating withlabel=character(0)
(similar to howchoices
andselected
can be cleared inupdateSelectInput()
). (#2406)Fixed #2250:
updateSliderInput()
now works with un-specified (or zero-length)min
,max
, andvalue
. (#2416)Fixed #2396:
selectInput("myID", ...)
resulting in an extramyID-selectized
input (introduced in v1.2.0). (#2418)Fixed #2233:
verbatimTextOutput()
produced wrapped text on Safari, but the text should not be wrapped. (#2353)Fixed #2335: When
dateInput()
’svalue
was unspecified, andmax
and/ormin
was set toSys.Date()
, the value was not being set properly. (#2526)Fixed #2591: Providing malformed date-strings to
min
ormax
no longer results in JS errors fordateInput()
anddateRangeInput()
. (#2592)Fixed rstudio/reactlog#36: Changes to reactive values not displaying accurately in reactlog. (#2424)
Fixed #2598: Showcase files don’t appear with a wide window. (#2582)