Skip to contents

Element UI Button with Vue Instance

Usage

el_button(
  id = NULL,
  label = "Button",
  type = "default",
  size = NULL,
  disabled = FALSE,
  icon = NULL,
  session = getDefaultReactiveDomain()
)

Arguments

id

Button ID (auto-generated if NULL)

label

Button text

type

Button type (primary, success, warning, danger, info, text)

size

Button size (medium, small, mini)

disabled

Whether button is disabled

icon

Icon tag (e.g. el_icon("search"), shiny::icon("star"), fontawesome::fa_icon("github"))

session

Shiny session for module support

Examples

# Basic usage
el_button("btn_primary", "Primary", type = "primary")
#> <div id="btn_primary_container">
#>   <el-button :type="type" :disabled="disabled" @click="handleClick">{{label}}</el-button>
#> </div>
#> <div class="vue html-widget html-fill-item" id="btn_primary" style="width:960px;height:500px;"></div>
#> <script type="application/json" data-for="btn_primary">{"x":{"el":"#btn_primary_container","data":{"label":"Primary","type":"primary","size":null,"disabled":false,"count":0},"methods":{"handleClick":"function() {\n  if (!this.disabled) {\n    this.count++;\n    Shiny.setInputValue('btn_primary', this.count);\n  }\n}"}},"evals":["methods.handleClick"],"jsHooks":[]}</script>

# Shiny app example
if (interactive()) {
  library(shiny)
  library(shiny.element)
  ui <- el_page(
    el_button("btn_primary", "Primary", type = "primary"),
    verbatimTextOutput("btn_primary_count")
  )
  server <- function(input, output, session) {
    output$btn_primary_count <- renderPrint(input$btn_primary)
  }
  shinyApp(ui, server)
}