Author: Obinna N. Obianom
Date: 2024-01-16

# Introducing the r2fireworks R package: add celebratory fireworks to page

#### Obinna N. Obianom

#### 2024-01-16

## The goal of this new R package is to provide functions that allow the addition of fireworks to an Rmarkdown or Shiny app

Constitutes the following functions:

      - [x] useFireworks : include needed scripts in UI

      - [x] showFireworks: start the fireworks

      - [x] removeFireworks: remove the fireworks

## Two sample apps

    # simple example with automatic start
    library(shiny)
    library(r2fireworks)

    ui <- fluidPage(
      useFireworks(),
      shiny::tags$h1("Introducing r2fireworks"),
      shiny::tags$p("Celebrate 4th of July and my R package!!!")
    )
    server <- function(input, output, session) {
    # optional. start fireworks on load
      showFireworks(particleCount = 30)
    }

    shinyApp(ui, server)

    # example with start and stop buttons
    library(shiny)
    library(r2fireworks)

    ui <- fluidPage(
      useFireworks(),
      shiny::tags$h1("Here is the starts"),
      shiny::tags$p("Celebrate 4th of July and my R package!!!"),
      actionButton("startFW","Show and Start Fireworks, with speed x1"),
      actionButton("startFWx4","Show and Start Fireworks, with speed x4"),
      actionButton("startFWspx4","Show Fireworks, with particle burst size 10000"),
      actionButton("stopFW","Remove Fireworks")
    )

    server <- function(input, output, session) {
      observeEvent(input$startFW,{
        showFireworks()
      })

      observeEvent(input$startFWx4,{
        showFireworks(speed = 4,particleCount = 50)
      })

      observeEvent(input$startFWspx4,{
        showFireworks(speed = 1,particleCount = 10000)
      })
      observeEvent(input$stopFW,{
        removeFireworks()
      })
    }