activity things #6
@ -22,6 +22,20 @@ class ActivityView extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _ActivityViewState extends State<ActivityView> {
|
||||
List<ActivityMuscle> activity_muscle(Activity activity) {
|
||||
List<ActivityMuscle> muscles = [];
|
||||
|
||||
if (activity.primaryMuscles != null) {
|
||||
muscles.add(activity.primaryMuscles!);
|
||||
}
|
||||
|
||||
if (activity.secondaryMuscles != null) {
|
||||
muscles.add(activity.secondaryMuscles!);
|
||||
}
|
||||
|
||||
return muscles;
|
||||
}
|
||||
|
||||
List<Widget> action(actions) {
|
||||
if (actions.isNotEmpty) {
|
||||
return [
|
||||
@ -163,46 +177,58 @@ class _ActivityViewState extends State<ActivityView> {
|
||||
fontSize: 25,
|
||||
fontWeight: FontWeight.bold),
|
||||
activity.title.toTitleCase())),
|
||||
Padding(
|
||||
padding: const EdgeInsets.fromLTRB(10, 0, 0, 10),
|
||||
child:
|
||||
Flex(direction: Axis.horizontal, children: [
|
||||
ActivityViewCategories<List<ActivityLevel>>(
|
||||
icon: Icon(Icons.stairs_rounded),
|
||||
text: "Activity Level",
|
||||
object: activity.level != null
|
||||
? [activity.level!]
|
||||
: []),
|
||||
// ActivityViewCategories<List<ActivityMechanic>>(
|
||||
// icon: Icon(Icons.),
|
||||
// text: 'Activity Mechanic',
|
||||
// object: activity.mechanic != null
|
||||
// ? [activity.mechanic!]
|
||||
// : []),
|
||||
ActivityViewCategories<List<ActivityEquipment>>(
|
||||
icon: Icon(Icons.fitness_center_rounded),
|
||||
text: 'Activity Equipments',
|
||||
object: activity.equipment != null
|
||||
? [activity.equipment!]
|
||||
: []),
|
||||
ActivityViewCategories<List<ActivityType>>(
|
||||
icon: Icon(Icons.type_specimen_rounded),
|
||||
text: 'Activity Type',
|
||||
object: activity.type != null
|
||||
? [activity.type!]
|
||||
: []),
|
||||
])),
|
||||
SizedBox(
|
||||
height: 40,
|
||||
child: ListView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding:
|
||||
const EdgeInsets.fromLTRB(10, 0, 10, 0),
|
||||
shrinkWrap: true,
|
||||
children: [
|
||||
ActivityViewCategories<List<ActivityLevel>>(
|
||||
icon: Icon(Icons.stairs_rounded),
|
||||
text: "Activity Level",
|
||||
object: activity.level != null
|
||||
? [activity.level!]
|
||||
: []),
|
||||
// ActivityViewCategories<List<ActivityMechanic>>(
|
||||
// icon: Icon(Icons.),
|
||||
// text: 'Activity Mechanic',
|
||||
// object: activity.mechanic != null
|
||||
// ? [activity.mechanic!]
|
||||
// : []),
|
||||
ActivityViewCategories<
|
||||
List<ActivityEquipment>>(
|
||||
icon:
|
||||
Icon(Icons.fitness_center_rounded),
|
||||
text: 'Equipment Used',
|
||||
object: activity.equipment != null
|
||||
? [activity.equipment!]
|
||||
: []),
|
||||
ActivityViewCategories<List<ActivityType>>(
|
||||
icon: Icon(Icons.type_specimen_rounded),
|
||||
text: 'Activity Type',
|
||||
object: activity.type != null
|
||||
? [activity.type!]
|
||||
: []),
|
||||
ActivityViewCategories<
|
||||
List<ActivityMuscle>>(
|
||||
icon: Icon(Icons.person),
|
||||
text: 'Muscles used',
|
||||
object: activity_muscle(activity))
|
||||
])),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 0, bottom: 0, left: 15, right: 15),
|
||||
top: 10, bottom: 0, left: 15, right: 15),
|
||||
child: Text(
|
||||
maxLines: 4,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
// softWrap: true,
|
||||
textAlign: TextAlign.left,
|
||||
style: const TextStyle(fontSize: 15),
|
||||
jsonToDescription([json
|
||||
.decode(activity.description ?? "")[0]]))),
|
||||
jsonToDescription([
|
||||
json.decode(activity.description ?? "")[0]
|
||||
]))),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(right: 15),
|
||||
child: Align(
|
||||
|
@ -2,7 +2,11 @@ import 'package:flutter/material.dart';
|
||||
import 'package:sendtrain/extensions/string_extensions.dart';
|
||||
|
||||
class ActivityViewCategories<T extends List<Enum>> extends StatelessWidget {
|
||||
const ActivityViewCategories({super.key, required this.object, required this.icon, required this.text});
|
||||
const ActivityViewCategories(
|
||||
{super.key,
|
||||
required this.object,
|
||||
required this.icon,
|
||||
required this.text});
|
||||
|
||||
final T object;
|
||||
final Icon icon;
|
||||
@ -10,22 +14,22 @@ class ActivityViewCategories<T extends List<Enum>> extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
height: 40,
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding: const EdgeInsets.only(right: 10),
|
||||
itemCount: object.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return ActionChip(
|
||||
return ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.horizontal,
|
||||
// padding: const EdgeInsets.only(right: 10, left: 10),
|
||||
itemCount: object.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(right: 10),
|
||||
child: ActionChip(
|
||||
visualDensity: VisualDensity.compact,
|
||||
avatar: icon,
|
||||
label: Text(maxLines: 1, object[index].name.toTitleCase()),
|
||||
tooltip: text,
|
||||
onPressed: () {},
|
||||
);
|
||||
},
|
||||
));
|
||||
));
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user