FreesearchR/reference/check_app_version.md

86 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Run a startup version check and return a banner UI element
Call this **outside** `server()` typically in `global.R` or at the top
of `app.R` and embed the returned value directly in your UI
definition. Because the check runs at startup the banner is present on
first render with no loading delay, and no `uiOutput()` / `renderUI()`
wiring is needed.
## Usage
``` r
check_app_version(
github_user,
github_repo,
app_version = NULL,
verbose = FALSE
)
```
## Arguments
- github_user:
GitHub username or organisation that owns the repository.
- github_repo:
Repository name. Also used as the package name for
[`utils::packageVersion()`](https://rdrr.io/r/utils/packageDescription.html).
- app_version:
Optional fallback version string for environments where the package is
not installed (e.g. shinyapps.io). Pass the result of your
`app_version()` function here. Ignored when
[`packageVersion()`](https://rdrr.io/r/utils/packageDescription.html)
succeeds.
- verbose:
Logical; if `TRUE` a banner is always returned. Defaults to `FALSE`.
## Value
A
[`shinyWidgets::alert()`](https://dreamrs.github.io/shinyWidgets/reference/bootstrap-utils.html)
UI element, or `NULL` when there is nothing to show (up to date in
non-verbose mode).
## Details
**Normal mode** (`verbose = FALSE`): returns a banner only when a newer
version is available or when the check fails. Returns `NULL` when the
app is up to date (Shiny silently ignores `NULL` in the UI).
**Verbose / debug mode** (`verbose = TRUE`): always returns a banner
including a success banner when up to date so you can confirm the
check ran and inspect both version strings during development.
## Examples
``` r
if (FALSE) { # \dontrun{
# global.R or top of app.R
source("version_check.R")
version_banner <- check_app_version(
github_user = "my-org",
github_repo = "my-shiny-app",
app_version = app_version() # fallback for shinyapps.io
)
# ui.R
fluidPage(
version_banner,
# ... rest of UI
)
# Verbose mode for development
version_banner <- check_app_version(
github_user = "my-org",
github_repo = "my-shiny-app",
app_version = app_version(),
verbose = TRUE
)
} # }
```