of static method
Returns the nearest MessageTheme.
Implementation
static MessageThemeData of(BuildContext context) {
final MessageTheme? messageTheme =
context.dependOnInheritedWidgetOfExactType<MessageTheme>();
MessageThemeData? messageThemeData = messageTheme?.data;
if (messageThemeData == null || !messageThemeData._isConcrete) {
final ThemeData themeData = Theme.of(context);
final TextTheme textTheme = themeData.textTheme;
final ColorScheme colorScheme = themeData.colorScheme;
messageThemeData ??= themeData.messageTheme;
final messageValue =
_MessageThemeData(textTheme: textTheme, colorScheme: colorScheme);
final TextStyle textStyle =
messageThemeData.textStyle ?? messageValue.textStyle;
final TextStyle titleTextStyle =
messageThemeData.titleTextStyle ?? messageValue.titleTextStyle;
final EdgeInsets titlePadding =
messageThemeData.titlePadding ?? messageValue.titlePadding;
final EdgeInsets padding =
messageThemeData.padding ?? messageValue.padding;
final Color highlightColor =
messageThemeData.highlightColor ?? messageValue.highlightColor;
final Color backgroundColor =
messageThemeData.backgroundColor ?? messageValue.backgroundColor;
final double itemSpacing =
messageThemeData.itemSpacing ?? messageValue.itemSpacing;
final Color infoColor =
messageThemeData.infoColor ?? messageValue.infoColor;
final Color errorColor =
messageThemeData.errorColor ?? messageValue.errorColor;
final Color warningColor =
messageThemeData.warningColor ?? messageValue.warningColor;
final Color successColor =
messageThemeData.successColor ?? messageValue.successColor;
final Curve animationCurve =
messageThemeData.animationCurve ?? messageValue.animationCurve;
final Duration duration =
messageThemeData.duration ?? messageValue.duration;
final Duration animationDuration =
messageThemeData.animationDuration ?? messageValue.animationDuration;
return messageThemeData.copyWith(
textStyle: textStyle,
titleTextStyle: titleTextStyle,
titlePadding: titlePadding,
padding: padding,
highlightColor: highlightColor,
backgroundColor: backgroundColor,
itemSpacing: itemSpacing,
infoColor: infoColor,
errorColor: errorColor,
warningColor: warningColor,
successColor: successColor,
animationCurve: animationCurve,
duration: duration,
animationDuration: animationDuration,
);
}
assert(messageThemeData._isConcrete);
return messageThemeData;
}