mirror of
https://github.com/agdamsbo/FreesearchR.git
synced 2026-06-19 12:37:30 +02:00
86 lines
2.2 KiB
Markdown
86 lines
2.2 KiB
Markdown
|
|
# 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
|
|||
|
|
)
|
|||
|
|
} # }
|
|||
|
|
```
|