Gostaria de adicionar um botão que copia a entrada ou saída de um usuário em um painel do Quarto. Encontrei o shiny2clipboard
que parece ser uma boa opção. Infelizmente, o código que estou tentando executar não copia o texto para a área de transferência dentro de um painel do Quarto. Quando você executa o código de exemplo do blog no link, ele funciona, mas não em um painel do Quarto. Aqui está um código reproduzível:
---
title: "Test"
format: dashboard
server: shiny
---
## Test
```{r}
library(shiny)
library(shinyCopy2clipboard)
```
```{r}
#| title: "Text that needs to copy to clipboard"
# Setup
use_copy()
# Text Input 1
textInput("text", "Enter Your Text")
# Copy Button 1
shinyCopy2clipboard::CopyButton(
"copybtn",
label = "Copy to clipboard",
icon = icon("copy"),
text = "No Text Found"
)
```
```{r}
#| context: server
observe({
req(input$copybtn)
shinyCopy2clipboard::CopyButtonUpdate(session,
id = "copybtn",
label = "Copy to clipboard",
icon = icon("copy"),
text = input$text
)
})
```
Saída:
Como você pode ver na saída, eu tento copiar o texto do campo de entrada para minha área de transferência. Isso não funciona. Então, eu queria saber se alguém sabe como adicionar um botão para copiar texto para sua área de transferência dentro de um painel do Quarto?
Você pode definir um
actionButton
que tem umonclick
evento. Lá, lemos o texto atual dotextInput
(usandotxt = document.getElementById('text').value;
) e então passamos isso para a área de transferência comnavigator.clipboard.writeText(txt);
: