title: only refresh shiny plot at launch and if action button is clicked
body: <p>I want to render shiny plots on launch and then require clicking the action button to re-render.  I tried to simplify my app to post here.  As you can, see changing the "week" selection triggers a refresh.  how do I suppress all refreshes unless action Is clicked?</p>
  
  <pre><code>library(shiny); library(dplyr); library(ggplot2)
  
  #toy data
  dates= seq.Date(as.Date("2020-01-01"),as.Date("2020-05-01"),by="days")
  set.seed(1)
  data = data.frame(date = dates,val = runif(length(dates),50,150))
  
  ui &lt;- fluidPage(
    sidebarLayout(
      sidebarPanel(
        selectInput("group","Group",choices = LETTERS[1:3]),
        dateRangeInput('dateRangeCal', "Input date range"),
        selectInput("week","shift week",choices = c(0:3)),
        actionButton("action","Submit")
      ),
      mainPanel(
        plotOutput(outputId = "plot")
      )
    )
  )
  
  server &lt;- function(input, output,session) {
  
    observeEvent( input$action, {
      startDate = as.Date("2020-01-01")+days(case_when(
        input$group == "A" ~ 0,
        input$group == "B" ~ 30,
        input$group == "C" ~ 60
      ))
      endDate=startDate+days(60)
      updateDateRangeInput(session = session, 
                           inputId = 'dateRangeCal',
                           label = 'Date range input:',
                           start = startDate,
                           end = endDate
      )
  
    },ignoreNULL = F)
  
    output$plot &lt;- renderPlot({
      p = data %&gt;%
        filter(date&gt;=input$dateRangeCal[1]+days(input$week)*7,date&lt;=input$dateRangeCal[2]) %&gt;%
        ggplot(.,aes(x=date,y=val))+
        geom_line()
      p
    })
  }
  
  shinyApp(ui, server)
  </code></pre>