renderUI and uiOutput Example HTML

items = data.frame(
  message = rep("A message", 2),
  from = LETTERS[1:2],
  time = rep("yesterday", 2),
  color = rep("success", 2)
)

lapply(seq_len(nrow(items)), function(i) {
  items_i <- items[i, ]
  bs4Dash::messageItem(
    message = items_i$message,
    from = items_i$from,
    time = items_i$time,
    color = items_i$color
  )
}) |>
  c(badgeStatus = "danger",
    type = "messages") |>
  do.call(what = getExportedValue("bs4Dash", "dropdownMenu")) |>
  as.character() |>
  cat()