refactor(ui): update tags in DeviceLogsScreen

This commit is contained in:
anhtunz
2024-12-27 10:59:47 +07:00
parent 70e3ed8978
commit 178a00f5ba
11 changed files with 373 additions and 58 deletions

View File

@@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:sfm_app/feature/device_log/widgets/tag_widget.dart';
import 'package:sfm_app/feature/devices/device_model.dart';
import 'package:sfm_app/feature/device_log/device_logs_bloc.dart';
import 'package:sfm_app/product/constant/icon/icon_constants.dart';
@@ -179,6 +180,8 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
style: const ButtonStyle(
backgroundColor: MaterialStatePropertyAll(
Colors.green),
foregroundColor: MaterialStatePropertyAll(
Colors.white),
),
onPressed: () {
if (fromDateApi.isEmpty) {
@@ -196,8 +199,8 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
dateTime!,
sensors);
}
log("ThingID: $thingID");
log("From Date: ${DateTimeUtils.instance.formatDateTimeToString(dateTime!)}");
// log("ThingID: $thingID");
// log("From Date: ${DateTimeUtils.instance.formatDateTimeToString(dateTime!)}");
},
icon: IconConstants.instance
.getMaterialIcon(Icons.search),
@@ -275,8 +278,7 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
ListTile(
subtitle:
Text(DeviceUtils.instance.getDeviceSensorsLog(context, sensor)),
// leading: const Icon(Icons.sensors_outlined),
leading: Text(index.toString()),
leading: leadingList(sensor),
title: Text(
DateTimeUtils.instance
.convertCurrentMillisToDateTimeString(sensor.time ?? 0),
@@ -299,4 +301,23 @@ class _DeviceLogsScreenState extends State<DeviceLogsScreen> {
deviceLogsBloc.sinkHasMore.add(hasMore);
deviceLogsBloc.getDeviceLogByThingID(offset, thingID, dateTime!, sensors);
}
Widget leadingList(SensorLogs sensor) {
Color boxColor;
String content;
if (sensor.name == "1" || sensor.name == "11") {
boxColor = Colors.blue;
content = "Điều khiển";
} else {
boxColor = Colors.lightGreen;
content = "Sự kiện";
}
return TagWidgetShared(
boxColor: boxColor,
tagContent: content,
boxHeight: context.mediumValue,
boxWidth: context.dynamicWidth(0.2),
);
}
}

View File

@@ -0,0 +1,38 @@
import 'package:flutter/material.dart';
class TagWidgetShared extends StatelessWidget {
const TagWidgetShared({
super.key,
required this.boxColor,
this.boxRadius,
this.boxHeight,
this.boxWidth,
required this.tagContent,
});
final Color? boxColor;
final double? boxRadius;
final double? boxHeight;
final double? boxWidth;
final String? tagContent;
@override
Widget build(BuildContext context) {
return Container(
decoration: BoxDecoration(
color: boxColor,
borderRadius: BorderRadius.circular(boxRadius ?? 10),
),
height: boxHeight ?? 40,
width: boxWidth ?? 100,
child: Center(
child: Text(
tagContent ?? "",
style: const TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 15,
),
),
),
);
}
}