Skip to content

Commit 6d150fd

Browse files
committed
fix initialization/restoration of filter vals/vars
1 parent 05a12b7 commit 6d150fd

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

R/data_extract_filter_module.R

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ data_extract_filter_srv <- function(id, datasets, filter) {
5151
ns <- session$ns
5252

5353
output$col_container <- renderUI({
54+
logger::log_trace("data_extract_filter_srv@1 setting up filter col input")
5455
teal.widgets::optionalSelectInput(
5556
inputId = ns("col"),
5657
label = filter$vars_label,
@@ -61,31 +62,32 @@ data_extract_filter_srv <- function(id, datasets, filter) {
6162
)
6263
})
6364

65+
is_init <- reactiveVal(TRUE)
6466
vals_options <- reactive({
6567
req(input$col)
6668
choices <- value_choices(
6769
data = datasets[[filter$dataname]](),
6870
var_choices = input$col,
6971
var_label = if (isTRUE(input$col == attr(filter$choices, "var_choices"))) attr(filter$choices, "var_label")
7072
)
71-
72-
selected <- if (!is.null(filter$selected)) {
73-
filter$selected
73+
selected <- if (shiny::isolate(is_init())) {
74+
shiny::isolate(is_init(FALSE))
75+
restoreInput(ns("vals"), filter$selected)
7476
} else if (filter$multiple) {
7577
choices
7678
} else {
7779
choices[1L]
7880
}
79-
selected <- restoreInput(ns("vals"), selected)
8081
list(choices = choices, selected = selected)
8182
})
8283

8384
output$vals_container <- renderUI({
85+
logger::log_trace("data_extract_filter_srv@2 updating filter vals")
8486
teal.widgets::optionalSelectInput(
8587
inputId = ns("vals"),
8688
label = filter$label,
8789
choices = vals_options()$choices,
88-
selected = isolate(vals_options()$selected),
90+
selected = vals_options()$selected,
8991
multiple = filter$multiple,
9092
fixed = filter$fixed
9193
)

0 commit comments

Comments
 (0)