generateTheme function

ThemeData generateTheme(
  1. BuildContext context,
  2. Map<ID, ColorStyleEntity> colorStyles,
  3. Map<ID, TextStyleEntity> textStyles,
  4. ThemeMode themeMode,
)

Implementation

ThemeData generateTheme(
    BuildContext context,
    Map<ID, ColorStyleEntity> colorStyles,
    Map<ID, TextStyleEntity> textStyles,
    ThemeMode themeMode) {
  final colorsTheme = ColorsAppTheme(
    colors: Map.fromEntries(
      colorStyles
          .map(
            (key, value) => MapEntry(
              key,
              themeMode == ThemeMode.dark
                  ? value.dark.getColor(context, 0)
                  : value.light.getColor(context, 0),
            ),
          )
          .entries,
    ),
  );
  return Theme.of(context).copyWith(
    primaryColor: _getPrimaryColor(context, colorStyles, themeMode),
    colorScheme: ColorScheme.fromSeed(
      seedColor: _getPrimaryColor(context, colorStyles, themeMode),
      brightness:
          themeMode == ThemeMode.light ? Brightness.light : Brightness.dark,
      surface: Colors.white,
    ),
    textTheme: _generateTextTheme(context, textStyles),
    extensions: <ThemeExtension<dynamic>>[
      colorsTheme,
    ],
  );
}