resolvePlatformStyle function

DmPlatformStyle resolvePlatformStyle(
  1. BuildContext context, {
  2. DmPlatformStyle? widgetOverride,
})

Resolves the DmPlatformStyle for the current context.

Resolution order:

  1. widgetOverride (per-widget parameter)
  2. Nearest DmPlatformOverride ancestor (subtree override)
  3. Nearest DuskmoonApp ancestor (app-level override)
  4. Platform default from Theme.of(context).platform

Implementation

DmPlatformStyle resolvePlatformStyle(
  BuildContext context, {
  DmPlatformStyle? widgetOverride,
}) {
  if (widgetOverride != null) return widgetOverride;

  final subtreeOverride = DmPlatformOverride.maybeOf(context);
  if (subtreeOverride != null) return subtreeOverride;

  final appStyle = DuskmoonApp.maybeStyleOf(context);
  if (appStyle != null) return appStyle;

  return _defaultStyle(Theme.of(context).platform);
}