feat: add relay actived history

This commit is contained in:
Syaroful 2024-11-12 10:55:12 +07:00
parent 6350a22b00
commit 305443f291
2 changed files with 74 additions and 6 deletions

View File

@ -1,15 +1,15 @@
class RelayResponse { class RelayResponse {
bool? success; bool? success;
List<Data>? data; List<Relay>? data;
RelayResponse({this.success, this.data}); RelayResponse({this.success, this.data});
RelayResponse.fromJson(Map<String, dynamic> json) { RelayResponse.fromJson(Map<String, dynamic> json) {
success = json['success']; success = json['success'];
if (json['data'] != null) { if (json['data'] != null) {
data = <Data>[]; data = <Relay>[];
json['data'].forEach((v) { json['data'].forEach((v) {
data!.add(Data.fromJson(v)); data!.add(Relay.fromJson(v));
}); });
} }
} }
@ -24,7 +24,7 @@ class RelayResponse {
} }
} }
class Data { class Relay {
int? id; int? id;
int? number; int? number;
String? enabledAt; String? enabledAt;
@ -32,7 +32,7 @@ class Data {
bool? currentStatus; bool? currentStatus;
String? createdAt; String? createdAt;
Data( Relay(
{this.id, {this.id,
this.number, this.number,
this.enabledAt, this.enabledAt,
@ -40,7 +40,7 @@ class Data {
this.currentStatus, this.currentStatus,
this.createdAt}); this.createdAt});
Data.fromJson(Map<String, dynamic> json) { Relay.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
number = json['number']; number = json['number'];
enabledAt = json['enabled_at']; enabledAt = json['enabled_at'];

View File

@ -0,0 +1,68 @@
import 'package:agrilink_vocpro/core/constant/app_theme.dart';
import 'package:agrilink_vocpro/core/extension/extention.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import '../../../core/constant/app_color.dart';
class RelayStatusHistoryWidget extends StatelessWidget {
const RelayStatusHistoryWidget({
super.key,
required this.disabledAt,
required this.enabledAt,
required this.name,
required this.imageUrl,
});
final String? disabledAt;
final String? enabledAt;
final String name;
final String imageUrl;
@override
Widget build(BuildContext context) {
return ListTile(
leading: CircleAvatar(
radius: 26.r,
backgroundColor: AppColor.ternary,
child: Image.asset(
imageUrl,
width: 24.r,
color: Colors.white,
),
),
title: Text(
name,
style: AppTheme.labelMedium,
),
subtitle: Column(
children: [
Row(
children: [
CircleAvatar(
backgroundColor: Colors.greenAccent,
radius: 4.r,
),
Text(
' Aktif ${timeAgo(enabledAt)}',
style: AppTheme.labelSmall,
),
],
),
Row(
children: [
CircleAvatar(
backgroundColor: Colors.grey.shade300,
radius: 4.r,
),
Text(
' Nonaktif ${timeAgo(disabledAt)}',
style: AppTheme.labelSmall,
),
],
)
],
),
);
}
}