You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uco-mobile-poc/lib/app/modules/user_activity/views/user_activity_view.dart

193 lines
8.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../core/constants/translation_keys.dart';
import '../../../custom_widgets/custom_app_bar.dart';
import '../../../custom_widgets/custom_no_record.dart';
import '../../../res/app_colors.dart';
import '../controllers/user_activity_controller.dart';
class UserActivityView extends GetView<UserActivityController> {
const UserActivityView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
controller.context = context;
return Scaffold(
appBar: DashBoardAppBar(
title: TranslationKeys.makeTranslation(
TranslationKeys.textUserActivityTitle),
onBackButtonPressed: () {
Get.back();
},
),
body: Obx(() {
return Column(children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Card(
surfaceTintColor: Colors.white,
margin:
const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
elevation: 5.0,
child: Container(
padding: const EdgeInsets.all(8),
decoration: const BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(10)) // Add border radius
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
InkWell(
child: SizedBox(
width: 120,
child: Padding(
padding: const EdgeInsets.only(left: 0, right: 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.calendar_month_rounded,
size: 18.0,
color: Colors.black.withOpacity(0.6),
),
const SizedBox(
width: 5,
),
Text(
controller.fromDate.value,
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(fontSize: 12),
),
],
),
),
),
onTap: () {
controller.selectFromDate();
},
),
Container(
height: 30, // Adjust the height as needed
width: 1, // Adjust the width as needed
color: Colors.grey, // Adjust the color as needed
),
InkWell(
child: SizedBox(
width: 120,
child: Padding(
padding: const EdgeInsets.only(left: 0, right: 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.calendar_month_rounded,
size: 18.0,
color: Colors.black.withOpacity(0.6),
),
const SizedBox(
width: 5,
),
Text(
controller.toDate.value,
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(fontSize: 12),
),
],
),
),
),
onTap: () {
controller.selectToDate();
},
),
],
),
),
),
),
const SizedBox(height: 5),
controller.isLoading.value
? const SizedBox()
: controller.userActivities.isNotEmpty
? Expanded(
flex: 2,
child: ListView.builder(
itemCount: controller.userActivities.length,
itemBuilder: (context, index) {
return Padding(
padding: EdgeInsets.only(
left: 10,
right: 10,
top: index == 0 ? 10 : 5,
bottom: index ==
controller.userActivities.length - 1
? 10
: 5),
child: Card(
surfaceTintColor: Colors.white,
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
controller.userActivities[index].date
.toString(),
style: Theme.of(context)
.textTheme
.bodyMedium),
const SizedBox(
height: 10,
),
Text(
controller
.userActivities[index].activity,
style: Theme.of(context)
.textTheme
.titleSmall),
const SizedBox(
height: 5,
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
"${TranslationKeys.makeTranslation(TranslationKeys.textUserActivityChannel)} ${controller.userActivities[index]?.channel ?? ' Found'}",
style: Theme.of(context)
.textTheme
.bodyMedium),
Text(
TranslationKeys.makeTranslation(
"${TranslationKeys.makeTranslation(TranslationKeys.textUserActivityDevice)}: ${controller.userActivities[index].deviceName}"),
style: Theme.of(context)
.textTheme
.bodyMedium
?.copyWith(
color: AppColors
.minusColor)),
]),
],
),
),
),
);
},
),
)
: const CustomNoRecord(
title: "No Record Found",
description:
"We couldn't find any activity at this moment")
]);
}));
}
}