integrate report and table view two sensors, use mock data for reports

This commit is contained in:
ashrafzarkanisala
2024-08-27 03:11:51 +03:00
parent 40deaff8a0
commit 7d700f47dd
9 changed files with 398 additions and 209 deletions

View File

@ -0,0 +1,72 @@
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_reports.dart';
import 'package:syncrow_web/pages/device_managment/shared/table/table_cell_widget.dart';
import 'package:syncrow_web/pages/device_managment/shared/table/table_header.dart';
class ReportsTable extends StatelessWidget {
final DeviceReport report;
final Function(int index) onRowTap;
final VoidCallback onClose;
const ReportsTable({
super.key,
required this.report,
required this.onRowTap,
required this.onClose,
});
@override
Widget build(BuildContext context) {
return Stack(
children: [
Padding(
padding: const EdgeInsets.all(20.0),
child: Table(
border: TableBorder.all(color: Colors.grey.shade300, width: 1),
columnWidths: const {
0: FlexColumnWidth(),
1: FlexColumnWidth(),
2: FlexColumnWidth(),
},
children: [
TableRow(
decoration: BoxDecoration(color: Colors.grey.shade200),
children: const [
TableHeader(title: 'Date'),
TableHeader(title: 'Time'),
TableHeader(title: 'Status'),
],
),
...report.data!.asMap().entries.map((entry) {
int index = entry.key;
var data = entry.value;
return TableRow(
children: [
TableCellWidget(value: data['date']),
TableCellWidget(value: data['time']),
TableCellWidget(
value: data['status'],
onTap: () => onRowTap(index),
),
],
);
}).toList(),
],
),
),
Positioned(
top: 0,
right: 0,
child: IconButton(
icon: const Icon(
Icons.close,
color: Colors.red,
size: 18,
),
onPressed: onClose,
),
),
],
);
}
}