R Блестящая ссылка на FluidPage, похожая на модальное окно - PullRequest
1 голос
/ 06 апреля 2020

В настоящее время у меня есть приложение в R блестящий с использованием FluidPage. В этом приложении у меня есть интерактивная таблица данных, из которой я выбираю строки, которые вызывают модальное окно. Смотрите пример кода ниже.

    # Load packages
    library(tidyverse)
    library(readxl)
    library("openxlsx")
    library(segmented)
    library(grid)
    library(gridExtra)
    library(shiny)
    library(shinyWidgets)
    library(shinydashboard)
    library(DT)
    library(dplyr)
    library(shinyBS)
    library(shinythemes)

    data_table <- data.frame(c(1))
    names(data_table)[1] <- "a"
    data_table$b <- 2
    data_table$c <- 3

    ui <- fluidPage(theme = shinytheme("lumen"),

                    mainPanel(
                      tabsetPanel(
                        tabPanel("Dashboard",
                                 fluidRow(
                                   box(DTOutput("data_table"), title = "Selectable Data Table", width = 12)
                                 ),
                                 tags$head(tags$style(HTML('
                            .modal-lg {
                            width: 99%;
                            }
                          ')))
                    )
    )
    )
    )
    server <- function(input, output, session) {
        #DASHBOARD
      output$data_table <- DT::renderDataTable({
        DT::datatable(data_table, selection = 'single', escape = FALSE)
      })
      table_select <- reactive({
        input$data_table_rows_selected
      })
          observeEvent(table_select(),{
            showModal(modalDialog(
              title = "I wish this window had a layout similar to fliudPage",
              size = "l",
              easyClose = TRUE,

            )
            )
          })
    }

    shinyApp(ui = ui, server = server)

Однако в этом модальном окне я не могу иметь макет FluidPage, то есть ширину строки 12, с параметром liquidRows et c. Я хотел бы иметь больший контроль над компоновкой этого модального окна - предпочтительно те же элементы управления компоновкой, что и на liquidPage.

Единственное, что мне удалось сделать, - это создать модальное окно большего размера, чем обычно представлен с использованием следующего кода:

                                 tags$head(tags$style(HTML('
                            .modal-lg {
                            width: 99%;
                            }
                          ')))

Как я его вижу, у меня есть два варианта:

Вариант 1 - Найти способ, чтобы наблюдаемое событие открывало новый FluidPage вместо модального окна. ? или

Вариант 2 - каким-либо образом изменить модальное расположение окон ...

любая помощь будет принята с благодарностью!

Приветствия,

-Alex

...