% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/board-server.R
\name{board_server}
\alias{board_server}
\alias{board_server.board}
\title{Board server}
\usage{
board_server(id, x, ...)

\method{board_server}{board}(
  id,
  x,
  plugins = board_plugins(x),
  options = board_options(x),
  callbacks = list(),
  callback_location = c("end", "start"),
  ...
)
}
\arguments{
\item{id}{Parent namespace}

\item{x}{Board}

\item{...}{Generic consistency}

\item{plugins}{Board plugins as modules}

\item{options}{Board options (\code{NULL} defaults to the union of board, block
and registry sourced options)}

\item{callbacks}{Single (or list of) callback function(s), called only
for their side-effects)}

\item{callback_location}{Location of callback invocation (before or after
plugins)}
}
\value{
A \code{board_server()} implementation (such as the default for the
\code{board} base class) is expected to return a \code{\link[shiny:moduleServer]{shiny::moduleServer()}}.
}
\description{
A call to \code{board_server()}, dispatched on objects inheriting from \code{board},
returns a \code{\link[shiny:moduleServer]{shiny::moduleServer()}}, containing all necessary logic to
manipulate board components via UI. Extensibility over currently available
functionality is provided in the form of S3, where a \code{board_server()}
implementation of \code{board} sub-classes may be provided, as well as via a
plugin architecture and callback functions which can be used to register
additional observers.
}
\section{Active conditions}{

Conditions raised while blocks evaluate (errors, warnings and messages) are
exposed as a reactive data frame \code{board$conditions} on the read-only board
handed to plugins and callbacks, with one row per active condition and
columns \code{block}, \code{phase}, \code{severity}, \code{message} and \code{id}. It combines the
per-block \code{server$conditions} reactives (see \code{\link[=block_server]{block_server()}}), so a
consumer reads a single reactive — the whole board, or one block's frame
for fine-grained updates — rather than walking nested condition state. The
default \code{\link[=notify_user]{notify_user()}} plugin renders its toasts from this source.
}

