File: code_modal.R

package info (click to toggle)
r-cran-bslib 0.9.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 12,412 kB
  • sloc: javascript: 13,349; makefile: 33; sh: 23
file content (38 lines) | stat: -rw-r--r-- 914 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
code_modal <- function(code) {
  if (rlang::is_call(code)) {
    code <- rlang::expr_text(code)
  }

  if (requireNamespace("styler", quietly = TRUE)) {
    code <- styler::style_text(code)
  }

  code <- paste(code, collapse = "\n")

  showModal(
    modalDialog(
      HTML(
        sprintf(
          '<pre><code id="value-box-code">%s</code></pre>',
          code
        )
      ),
      p(
        id = "copy-clipboard-not-supported",
        class = "text-muted d-none",
        HTML(
          "Press <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>C</kbd> to copy the value box example code."
        )
      ),
      tags$button(
        id = "copy-code-to-clipboard",
        class = "btn btn-outline-primary",
        onclick = "copyValueBoxCode()",
        "Copy to clipboard"
      ),
      singleton(tags$script(src = "code-modal.js")),
      footer = modalButton("Done"),
      easyClose = TRUE
    )
  )
}