Interface for a reactive UI panel used in the Sandbox build. Declares storage for the current render Effect root and a Version counter that increments when dependencies change, so the panel can rebuild its render tree.
#if SANDBOX
namespace Sandbox.Reactivity.Internals;
/// <summary>
/// A panel that creates an effect root every time it builds its render tree.
/// </summary>
internal interface IReactivePanel
{
/// <summary>
/// The current effect root created during rendering.
/// </summary>
Effect? RenderEffectRoot { get; set; }
/// <summary>
/// A monotonically increasing counter that's incremented when a panel's dependencies have changed and needs to
/// rebuild its render tree.
/// </summary>
int Version { get; set; }
}
#endif