R/input-group.R

Defines functions updateGroupInput groupButton groupAddon groupInput

#' @export
groupInput <- function(inputId, ..., left = NULL, right = NULL, class = NULL, size = NULL) {
  shiny::addResourcePath(
    prefix = "shuny",
    directoryPath = fs::path_package("shuny", "www")
  )
  if (!is.null(size)) {
    size <- paste0("input-group-", match.arg(size, c("sm", "lg")))
  }
  shiny::tagList(
    shiny::singleton(tags$head(
      tags$script(src = "shuny/input_binding_group.js")
    )),
    tags$div(
      class = classNames("input-group", size),
      left,
      tags$input(
        id = inputId,
        type = "text",
        class = classNames("shuny-input-group form-control", class),
        ...
      ),
      right
    )
  )
}

#' @export
groupAddon <- function(...) {
  tags$span(
    class = "input-group-addon",
    ...
  )
}

#' @export
groupButton <- function(...) {
  tags$span(
    class = "input-group-btn",
    ...
  )
}

#' @export
updateGroupInput <- function(session, inputId, ..., value = NULL, placeholder = NULL) {
  message <- dropNulls(list(value = value, placeholder = placeholder))
  session$sendInputMessage(inputId, message)
}
shunsambongi/shuny documentation built on Aug. 19, 2022, 9:57 a.m.