R/app_server.R

Defines functions app_server

#' The application server-side
#' 
#' @param input,output,session Internal parameters for {shiny}. 
#'     DO NOT REMOVE.
#' @import shiny
#' @noRd

app_server <- function(input, output, session) {
  output$user_out <- renderPrint({
    session$userData$user()
  })
  
  observeEvent(input$sign_out, {
    polished::sign_out_from_shiny()
    session$reload()
  })
  
  
  ### MODULES FOR SUB-PROCESSES
  mod_reddit_server("reddit_module")
  
  # different menu options for different users
  # NOTE! Not calling bs4Dash::renderMenu() due to known bug
  #https://github.com/RinteRface/bs4Dash/issues/234
  renderMenu <- function(expr, env = parent.frame(), quoted = FALSE, outputArgs = list()) {
    if (!quoted) {
      expr <- substitute(expr)
      quoted <- TRUE
    }
    shiny::renderUI(expr, env = env, quoted = quoted, outputArgs = outputArgs)
  }
  
  output$sidebar_menu <- renderMenu({
    if (session$userData$user()$is_admin) {
      bs4Dash::sidebarMenu(
        bs4Dash::menuItem("About", tabName = "about", icon = shiny::icon(name = "question-circle")),
        bs4Dash::menuItem("Reddit", icon = shiny::icon("reddit"), tabName = "reddit"),
        bs4Dash::menuItem("User Data", icon = icon("th"), tabName = "user_data")
      )
    } else {
    bs4Dash::sidebarMenu(
      bs4Dash::menuItem("About", tabName = "about", icon = shiny::icon(name = "question-circle")),
      bs4Dash::menuItem("Reddit", icon = shiny::icon("reddit"), tabName = "reddit")
    )
    }
  })
}
BelangerAnalytics/socialastronomy.pbs4dash documentation built on Feb. 15, 2022, 8:06 a.m.