* ggplot2 input brushes should retain discrete range mapping, and be imposed in brushedPoints(), closes#1433
* simplify logic and reduce required storage
* get nearPoints() working as well, cleanup
* only remember scale range if ggplot is facet with a free discrete axis
* Use the scale limits (before the range) since the former is specified, that's what is actually shown on the plot
also, introduce within_brush() helper to consistently handle missing values produced by asNumber()
* also use scale limits in older versions of ggplot2
* DRY
* discrete_mapping -> discrete_limits; better comments
* update test expectation
* a couple unit tests
* update comment to reflect new coordmap data structure
* use unlink() not rm()
* add some tests for specifying scale limits and labels
* Use get_limits() if available
* update news
* better name and comment for new asNumber() argument
Without this change, async handlers won't return any
value for getDefaultReactiveDomain().
library(shiny)
library(promises)
ui <- fluidPage(
p("This app tests if async handlers have reactive domains. You'll get a yes/no answer below."),
h3(
"Does it work?",
textOutput("answer", inline = TRUE)
)
)
server <- function(input, output, session) {
output$answer <- renderText({
promise_resolve(TRUE) %...>% {
if (!is.null(getDefaultReactiveDomain()))
"Yes!"
else
"No :("
}
})
}
shinyApp(ui, server)
- Adds functions we will need for tracking ..stacktraceon/off..
across deep stacks
- Adds functions we will need for pruning according to lobstr::cst
logic
These functions are not yet integrated, that will occur in a
separate commit.
* allow the `choices` argument in `checkboxGroupInput()` to be `NULL` or `c()` to keep backward compatibility with Shiny < 1.0.1 (fixes#1649)
* use vapply
* added one more test; reimplemented logic for checking if choice args are null