From d365036eb9cec41c886e0511aa9a95adac19a209 Mon Sep 17 00:00:00 2001 From: dylanbenzi Date: Tue, 7 Apr 2026 21:41:00 -0400 Subject: [PATCH] modify storm selector selected storm info --- app/server.R | 50 +++++++++++++++++++++++++++++++++++++++++----- app/ui.R | 56 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 91 insertions(+), 15 deletions(-) diff --git a/app/server.R b/app/server.R index 534bcc9..0d6f44d 100644 --- a/app/server.R +++ b/app/server.R @@ -27,6 +27,10 @@ server <- function(input, output, session) { select(1, 2, data) } + output$dt_storm_badges <- renderUI({ + div(HTML(dt_storm_selected()$data)) + }) + output$storm_coverage_table <- renderDT({ datatable( storm_coverage, @@ -52,12 +56,48 @@ server <- function(input, output, session) { }) output$dt_storm_name_year <- renderText({ - paste0( - dt_storm_selected()$storm_name, - " (", - dt_storm_selected()$storm_year, - ")" + if (is.null(input$storm_coverage_table_rows_selected)) { + "Select a storm" + } else { + paste0( + dt_storm_selected()$storm_name, + " (", + dt_storm_selected()$storm_year, + ")" + ) + } + }) + + best_track_summary <- reactive({ + req(input$storm_coverage_table_rows_selected) + + storm <- list( + storm_basin = "AL", + storm_year = dt_storm_selected()$storm_year, + storm_name = dt_storm_selected()$storm_name ) + + get_best_track_summary(storm) + }) + + normalized_loss_summary <- reactive({ + req(input$storm_coverage_table_rows_selected) + + storm <- list( + storm_year = dt_storm_selected()$storm_year, + storm_name = dt_storm_selected()$storm_name + ) + + get_latest_aggregate_loss(storm) + }) + + output$dt_mmh_loss <- renderText({ + normalized_loss_summary()$mmh + #dollar( + # normalized_loss_summary()$mmh, + # prefix = "$", + # scale_cut = cut_short_scale() + #) }) output$selected_storm_name_year <- renderText({ diff --git a/app/ui.R b/app/ui.R index e05af35..7e1b1df 100644 --- a/app/ui.R +++ b/app/ui.R @@ -56,22 +56,58 @@ ui <- page_navbar( layout_columns( col_widths = 12, card( - height = 250, - h4(strong(textOutput("dt_storm_name_year"))), - p("Category X - Landfall: FL"), - div(), - hr(), + height = 300, + div( + h5(strong(textOutput("dt_storm_name_year"))), + uiOutput("dt_storm_badges") + ), layout_columns( col_widths = c(6, 6), - div(), - div(), - div(), - div() + card( + class = "bg-light", + card_body( + class = "p-1", + div( + div(tags$small(class = "text-muted", "MMH23 Loss")), + #div(textOutput("dt_mmh_loss")) + ) + ) + ), + card( + class = "bg-light", + card_body( + class = "p-1", + div( + div(tags$small(class = "text-muted", "Direct Deaths")), + div("hi") + ) + ) + ), + card( + class = "bg-light", + card_body( + class = "p-1", + div( + div(tags$small(class = "text-muted", "Max Category")), + div("hi") + ) + ) + ), + card( + class = "bg-light", + card_body( + class = "p-1", + div( + div(tags$small(class = "text-muted", "Track Observations")), + div("hi") + ) + ) + ) ), actionButton("load_storm", "Load Storm") ), card( - height = 750, + height = 700, card_body( class = "p-0", leafletOutput("all_storms_map", height = "100%")