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