57 lines
1.5 KiB
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,
|
|
);
|
|
}
|