Skip to contents

Creates an EmptyStateManager to then show or hide content.

Value

EmptyStateManager R6 class

Details

Creates an object to show an empty state content on selected id specified by id parameter. Then show or hide or use is_empty_state_show to check the status.

Methods


Method new()

Creates a new empty state manager object.

Usage

EmptyStateManager$new(
  id,
  html_content = default_empty_state_component(),
  color = NULL
)

Arguments

id

id of element which should be covered with html_content

html_content

Content for empty state. Defaults to default_empty_state_component()

color

Background color of empty state content. Defaults to NULL

Returns

A new EmptyStateManager R6 class object.


Method is_empty_state_show()

Returns the current visibility state of the empty state UI. Defaults to FALSE

Usage

EmptyStateManager$is_empty_state_show()

Returns

boolean, TRUE/FALSE


Method show()

Show empty state component.

Usage

EmptyStateManager$show()

Returns

Nothing, it changes state of empty state


Method hide()

Hides empty state component.

Usage

EmptyStateManager$hide()

Returns

Nothing, it changes state of empty state


Method clone()

The objects of this class are cloneable with this method.

Usage

EmptyStateManager$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

library(shiny)
library(shiny.emptystate)
library(fontawesome)

ui <- fluidPage(
  use_empty_state(),
  actionButton("show", "Show empty state!"),
  actionButton("hide", "Hide empty state!"),
  tableOutput("my_table")
)

server <- function(input, output) {
  # Creating a custom empty state component
  empty_state_content <- empty_state_component(
    content = fa("eye-slash", height = "10rem", fill = "#808000"),
    title = "Hide empty state to see table",
    subtitle = "This empty state uses a FontAwesome icon."
  )

  # Initialize a new empty state manager object
  manager_object <- EmptyStateManager$new(
    id = "my_table",
    html_content = empty_state_content
  )

  observeEvent(input$show, {
    # Show empty state
    manager_object$show()
  })

  observeEvent(input$hide, {
    # Hide empty state
    manager_object$hide()
  })

  output$my_table <- renderTable(mtcars)
}

if (interactive()) {
  shinyApp(ui = ui, server = server)
}