Как добавить кнопку "копировать в буфер обмена" в интерфейс Shiny приложения
Если ваше приложение генерирует какой то текст, который необходимо скопировать в буфер обмена, например какой нибудь код, или URL, то для удобства копирования можно добавить в интерфейс приложения кнопку "Копировать в буфер обмена". Сделать это можно с помощью пакета rclipboard и функции rclipButton(). Данная функция копирует в буфер обмена текст, который передан в её аргумент clipText. Но, для активации функции копирования включите функцию rclipboardSetup() в пользовательский интерфейс вашего приложения.
Пример:
# in the UI
rclipboardSetup(),
uiOutput("clip_button")
# in the server
renderUI({
rclipButton(
"clip_button",
"Copy to clipboard",
clipText = "Text to be copied",
icon = icon("clipboard")
)
})
Можно ещё немного улучшить этот интерфейс. Дело в том, что в приведённом выше примере при клике по кнопке "Copy to clipboard" визуально ничего не происходит. Но мы можем добавить всплывающую подсказку с помощью пакета tippy.
Добавить всплывающую подсказку можно вызвав функцию tippy_this() в пользовательском интерфейсе, указав при этом идентификатор пользовательского элемента. В нашем примере идентификатором кнопки копирования в буфер обмена является clip_button.
Пример:
# in the UI
tippy_this(
"clip_button",
tooltip = "String copied!",
trigger = "click"
)
Ссылки:
- Посмотреть целиком код приложения, который использован в качестве примера
- README пакета rclipboard
#заметки_по_R