generateTheme method
void
generateTheme(
- String theme,
- dynamic value,
- String flavor
)
Implementation
void generateTheme(String theme, dynamic value, String flavor) {
final className = isAllFlavor ? '$flavor $theme' : theme;
final dir = join(pathThemes, 'src');
DirectoryHelper.createDir(dir);
final pathItemTheme =
join(dir, 'morpheme_theme_${className.snakeCase}.dart');
if (!exists(pathItemTheme)) {
final brightness = value['brightness'] == 'dark' ? 'dark' : 'light';
pathItemTheme.write('''import 'package:flutter/material.dart';
import '../../morpheme_colors/morpheme_colors.dart';
import 'morpheme_theme.dart';
final class MorphemeTheme${className.pascalCase} extends MorphemeTheme {
MorphemeTheme${className.pascalCase}() : super('${className.snakeCase}');
@override
MorphemeColor get color => MorphemeColor${className.pascalCase}();
@override
ThemeData get rawThemeData => ThemeData.$brightness().copyWith(
extensions: [color],
);
@override
ColorScheme get colorScheme => ColorScheme.$brightness(
primary: color.primary,
);
}
''');
}
}