import 'package:antd_mobile/antd_mobile.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_highlight/flutter_highlight.dart'; import 'package:flutter_highlight/theme_map.dart'; import 'package:git_touch/models/code.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:provider/provider.dart'; class FilesItem extends StatelessWidget { const FilesItem({ required this.filename, required this.status, required this.deletions, required this.additions, required this.patch, }); final String? filename; final String? status; final int? additions; final int? deletions; final String? patch; @override Widget build(BuildContext context) { final theme = Provider.of(context); final codeProvider = Provider.of(context); return Card( color: AntTheme.of(context).colorBackground, margin: const EdgeInsets.all(0), child: ExpansionTile( title: Text( filename!, style: TextStyle( color: AntTheme.of(context).colorPrimary, fontSize: 18, fontWeight: FontWeight.w600, ), ), children: [ SingleChildScrollView( scrollDirection: Axis.horizontal, child: HighlightView( patch!, language: 'diff', padding: CommonStyle.padding, theme: themeMap[theme.brightness == Brightness.dark ? codeProvider.themeDark : codeProvider.theme]!, textStyle: codeProvider.fontStyle, ), ), ], ), ); } }