applyComponentOverrides static method

ThemeData applyComponentOverrides(
  1. ThemeData base,
  2. NeomageComponentTheme comp
)

Apply NeomageComponentTheme overrides to an existing ThemeData.

Implementation

static ThemeData applyComponentOverrides(
  ThemeData base,
  NeomageComponentTheme comp,
) {
  return base.copyWith(
    cardTheme: base.cardTheme.copyWith(
      elevation: comp.cardElevation,
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(comp.cardRadius),
      ),
    ),
    dialogTheme: base.dialogTheme.copyWith(
      shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.circular(comp.dialogRadius),
      ),
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        minimumSize: Size(0, comp.buttonHeight),
        shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(comp.buttonRadius),
        ),
      ),
    ),
    inputDecorationTheme: base.inputDecorationTheme.copyWith(
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(comp.inputRadius),
      ),
      enabledBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(comp.inputRadius),
        borderSide:
            base.inputDecorationTheme.enabledBorder?.borderSide ??
            BorderSide.none,
      ),
      focusedBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(comp.inputRadius),
        borderSide:
            base.inputDecorationTheme.focusedBorder?.borderSide ??
            BorderSide.none,
      ),
      constraints: BoxConstraints(minHeight: comp.inputHeight),
    ),
  );
}