#Callbacks: --

FSContext discard

Old FSContext is discarded on rerender, so the number of callbacks doesn't grow indefinitely


    // Debug rerenderable:
    val table = new Table5Base
      with Table5BaseBootrapSupport
      with Table5SelectableRows
      with Table5StandardColumns
      with Table5Paginated {
      override type R = Country

      override def defaultPageSize: Int = 10

      val ColName = ColStr("Name", _.name.common)
      val ColCapital = ColStr("Capital", _.capital.mkString(", "))
      val ColRegion = ColStr("Region", _.region)
      val ColArea = ColStr("Area", _.area.toString)

      override def columns(): List[C] = List(
        ColName
        , ColCapital
        , ColRegion
        , ColArea
        , ColSelectRow
      )

      override def seqRowsSource: Seq[Country] = CountriesData.data
    }

    new Widget {
      override def widgetTitle: String = "Selectable rows"

      override def transformWidgetCardBody(elem: Elem): Elem = super.transformWidgetCardBody(elem).p_0

      override def widgetTopRight()(implicit fsc: FSContext): NodeSeq =
        BSBtn().BtnDanger.toggler(
          () => RerendererDebugStatusState() == RerendererDebugStatus.Enabled,
          {
            case true =>
              RerendererDebugStatusState() = RerendererDebugStatus.Enabled
              JS.reload()
            case false =>
              RerendererDebugStatusState() = RerendererDebugStatus.Disabled
              JS.reload()
          },
          "Debug disabled",
          "Debug enabled",
        ) ++
          table.clearRowSelectionBtn.btn.ms_2 ++
          table.selectAllVisibleRowsBtn.btn.ms_2

      override def widgetContents()(implicit fsc: FSContext): NodeSeq = table.render()
    }.renderWidget()

Selectable rows

NameCapitalRegionArea
ArubaOranjestadAmericas180.0
AfghanistanKabulAsia652230.0
AngolaLuandaAfrica1246700.0
AnguillaThe ValleyAmericas91.0
Åland IslandsMariehamnEurope1580.0
AlbaniaTiranaEurope28748.0
AndorraAndorra la VellaEurope468.0
United Arab EmiratesAbu DhabiAsia83600.0
ArgentinaBuenos AiresAmericas2780400.0
ArmeniaYerevanAsia29743.0