Hi guys.
I am looking for a quick solution to the fact that you can select max date which is lower than min date in shiny dateRangeInput. I didn't find any useful parameter in the function documentation, which would contrain the behavior of dateRangeInput. It is such a no-brainer that I am in awe, that it's not there. Thanks.
This might not be the most intuitive way and I agree that such a constraint should be built into the function, but the validate()
function would work here as in this simple example (in this case the plot won't render unless the date range makes sense). You can of course change the message that the user sees when the condition is not satisfied:
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30),
dateRangeInput('date', "Date", start = NULL, end = NULL, min = NULL,
max = NULL, format = "yyyy-mm-dd", startview = "month", weekstart = 0,
language = "en", separator = " to ", width = NULL)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
output$distPlot <- renderPlot({
validate(
need(input$date[1] <= input$date[2], 'Make sure dates are correct.')
)
# generate bins based on input$bins from ui.R
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
# draw the histogram with the specified number of bins
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
# Run the application
shinyApp(ui = ui, server = server)
Thanks valeri. I have tried to raise an issue for native solution on shiny github here. I don't consider error message a good practice in this particular case.
Currently the best workaround seems to be to implement shinyalert (git by Colin Fay ). Sadly, no true solution within the scope of dateRangeInput function.
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.