import 'package:flutter/material.dart'; import 'package:sendtrain/classes/activity_action.dart'; import 'package:sendtrain/models/activity_model.dart'; import 'package:sendtrain/widgets/activity_action_view.dart'; class ActivityView extends StatelessWidget { const ActivityView({super.key, required this.activity}); final ActivityModel activity; @override Widget build(BuildContext context) { var content = [ AppBar( centerTitle: true, title: const Text('Activity', style: TextStyle(fontSize: 15)), ), Padding( padding: const EdgeInsets.only(left: 15, right: 20, top: 15, bottom: 10), child: Text( maxLines: 1, style: const TextStyle(fontSize: 25, fontWeight: FontWeight.bold), activity.title)), ActivityViewCategories(categories: activity.categories), Padding( padding: const EdgeInsets.only(top: 0, bottom: 10, left: 15, right: 15), child: Text( textAlign: TextAlign.left, style: const TextStyle(fontSize: 15), activity.description)), const Padding( padding: EdgeInsets.fromLTRB(15, 30, 0, 10), child: Text( textAlign: TextAlign.left, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), 'Actions:')) ]; for (var action in activity.actions){ content.add(ActivityActionView(action: action)); } return Column( crossAxisAlignment: CrossAxisAlignment.start, children: content ); } } class ActivityViewCategories extends StatelessWidget { const ActivityViewCategories({super.key, this.categories}); final List? categories; @override Widget build(BuildContext context) { return Column( children: [ Padding( padding: const EdgeInsets.only(bottom: 10), child: SizedBox( height: 40, child: ListView.builder( shrinkWrap: true, scrollDirection: Axis.horizontal, padding: const EdgeInsets.fromLTRB(10, 0, 10, 0), itemCount: categories?.length, itemBuilder: (BuildContext context, int index) { return Padding( padding: const EdgeInsets.only(right: 5), child: ActionChip( visualDensity: VisualDensity.compact, avatar: const Icon(Icons.check_circle_outline), label: Text(maxLines: 1, '${categories?[index]}'), onPressed: () {}, )); }, ))), ], ); } }