mergeOverridesWithFallbacks function
Logoheadless

mergeOverridesWithFallbacks#

RenderOverrides? mergeOverridesWithFallbacks({ required RenderOverrides? base, required List<RenderOverrides?> fallbacks, });

Merge multiple sugar layers into overrides with POLA priority.

Priority (strong -> weak):

  1. base — explicit overrides, always win
  2. fallbacks — sugar layers in order (later = stronger)

Example for RSwitch with thumbIcon + style sugar:

mergeOverridesWithFallbacks(
  base: widget.overrides,
  fallbacks: [
    // style is weakest sugar
    if (widget.style != null)
      RenderOverrides.only(widget.style!.toOverrides()),
    // thumbIcon is stronger than style, but weaker than overrides
    if (widget.thumbIcon != null)
      RenderOverrides.only(RSwitchOverrides.tokens(thumbIcon: widget.thumbIcon)),
  ],
);