Cells/cells/ui/src/net/okennedy/cells/sheet/Canvas.scala

28 lines
632 B
Scala

package net.okennedy.cells.sheet
import scala.collection.mutable
import com.raquo.airstream.state.Var
import net.okennedy.cells._
import com.raquo.laminar.api.L._
class Canvas()
{
val tables = Var[Map[Identifier, Table]](initial = Map.empty)
def process(op: CanvasOp): Unit =
{
op match {
case AddTable(table) =>
tables.set(tables.now() ++ Map(table.id -> new Table(table)))
}
}
val tableNodes =
tables.signal.map { _.values.toSeq }
.split( key = _.id )( (k, tabl, sig) => tabl.root )
val root = div(
className("spreadsheetCanvas"),
children <-- tableNodes
)
}