@@ -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