adguard-home-manager/lib/screens/logs/logs.dart

68 lines
1.9 KiB
Dart
Raw Normal View History

// ignore_for_file: use_build_context_synchronously
2022-09-30 23:33:57 +02:00
import 'package:flutter/material.dart';
2024-03-10 20:30:25 +01:00
import 'package:provider/provider.dart';
2022-09-30 23:33:57 +02:00
2023-10-29 02:19:00 +01:00
import 'package:adguard_home_manager/screens/logs/logs_list.dart';
2023-11-01 20:46:03 +01:00
import 'package:adguard_home_manager/screens/logs/details/log_details_screen.dart';
2022-09-30 23:33:57 +02:00
import 'package:adguard_home_manager/models/logs.dart';
2024-03-10 20:30:25 +01:00
import 'package:adguard_home_manager/providers/filtering_provider.dart';
class Logs extends StatefulWidget {
2024-03-10 20:30:25 +01:00
const Logs({super.key});
2022-09-30 23:33:57 +02:00
@override
State<Logs> createState() => _LogsState();
2022-09-30 23:33:57 +02:00
}
class _LogsState extends State<Logs> {
2023-10-29 02:19:00 +01:00
Log? _selectedLog;
2022-09-30 23:33:57 +02:00
2024-03-10 20:30:25 +01:00
@override
void initState() {
Provider.of<FilteringProvider>(context, listen: false).fetchFilters();
super.initState();
}
2022-09-30 23:33:57 +02:00
@override
Widget build(BuildContext context) {
2023-10-29 02:19:00 +01:00
return LayoutBuilder(
builder: (context, constraints) {
2024-01-16 18:25:47 +01:00
if (constraints.maxWidth > 800) {
2023-10-29 02:19:00 +01:00
return Material(
color: Colors.transparent,
child: Row(
children: [
Expanded(
flex: 2,
child: LogsListWidget(
twoColumns: true,
selectedLog: _selectedLog,
onLogSelected: (log) => setState(() => _selectedLog = log),
2023-09-04 23:32:55 +02:00
)
2023-09-13 01:17:19 +02:00
),
2023-10-29 02:19:00 +01:00
Expanded(
flex: 3,
child: _selectedLog != null
? LogDetailsScreen(
log: _selectedLog!,
dialog: false,
2023-09-04 23:32:55 +02:00
)
2023-10-29 02:19:00 +01:00
: const SizedBox()
)
],
2023-05-01 15:58:06 +02:00
),
2023-10-29 02:19:00 +01:00
);
}
else {
return LogsListWidget(
twoColumns: false,
selectedLog: _selectedLog,
onLogSelected: (log) => setState(() => _selectedLog = log),
);
}
},
);
2022-09-30 23:33:57 +02:00
}
}