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

62 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:yimaru_app/models/course_module.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 CourseModuleTileSmall extends StatelessWidget {
final CourseModule? module;
final GestureTapCallback? onTap;
const CourseModuleTileSmall({super.key, this.onTap, required this.module});
@override
Widget build(BuildContext context) => _buildTile();
Widget _buildTile() => ListTile(
onTap: onTap,
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(
module?.name ?? '',
maxLines: 1,
softWrap: false,
style: style14DG600,
);
Widget _buildLeadingWrapper() => CircleAvatar(
backgroundColor: kcVeryLightGrey.withValues(alpha: 0.5),
child: _buildLeading(),
);
Widget _buildLeading() => const Icon(
Icons.book,
color: kcLightGrey,
);
Widget _buildTrailingWrapper() =>
ProgressStatuses.completed != ProgressStatuses.completed
? _buildCompletedTrailing()
: _buildPendingTrailing();
Widget _buildCompletedTrailing() => const Icon(
Icons.check_circle,
color: kcGreen,
);
Widget _buildPendingTrailing() => const Icon(
Icons.circle_outlined,
color: kcLightGrey,
);
}