Yimaru-Mobile/lib/ui/widgets/course_topic_tile.dart

57 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:yimaru_app/ui/common/app_colors.dart';
import 'package:yimaru_app/ui/common/enmus.dart';
import 'package:yimaru_app/ui/common/ui_helpers.dart';
class CourseTopicTile extends StatelessWidget {
final String title;
final ProgressStatuses status;
const CourseTopicTile({super.key, required this.title, required this.status});
@override
Widget build(BuildContext context) => _buildTile();
Widget _buildTile() => ListTile(
title: _buildTitle(),
leading: _buildLeadingWrapper(),
trailing: _buildTrailingWrapper(),
shape: Border(
top: BorderSide(
color: kcPrimaryColor.withValues(alpha: 0.25),
),
),
contentPadding:
const EdgeInsets.symmetric(vertical: 15, horizontal: 15),
);
Widget _buildTitle() => Text(
title,
style: style16DG600,
);
Widget _buildLeadingWrapper() => CircleAvatar(
backgroundColor: kcVeryLightGrey.withValues(alpha: 0.5),
child: _buildLeading(),
);
Widget _buildLeading() => const Icon(
Icons.book,
color: kcLightGrey,
);
Widget _buildTrailingWrapper() => status == ProgressStatuses.completed
? _buildCompletedTrailing()
: _buildPendingTrailing();
Widget _buildCompletedTrailing() => const Icon(
Icons.check_circle,
color: kcGreen,
);
Widget _buildPendingTrailing() => const Icon(
Icons.circle_outlined,
color: kcLightGrey,
);
}