37 lines
986 B
Dart
37 lines
986 B
Dart
import 'package:flutter/material.dart';
|
|
import 'admin_database_panel.dart';
|
|
import 'admin_users_panel.dart';
|
|
|
|
enum AdminViewTab { users, database }
|
|
|
|
extension AdminViewTabX on AdminViewTab {
|
|
static AdminViewTab fromQuery(String? value) {
|
|
return switch (value) {
|
|
'database' => AdminViewTab.database,
|
|
_ => AdminViewTab.users,
|
|
};
|
|
}
|
|
|
|
String get queryValue => this == AdminViewTab.database ? 'database' : 'users';
|
|
}
|
|
|
|
class AdminScreen extends StatelessWidget {
|
|
final AdminViewTab initialTab;
|
|
|
|
const AdminScreen({super.key, this.initialTab = AdminViewTab.users});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final activePanel = switch (initialTab) {
|
|
AdminViewTab.users => const AdminUsersPanel(embedded: true),
|
|
AdminViewTab.database => const AdminDatabasePanel(embedded: true),
|
|
};
|
|
|
|
return Padding(
|
|
padding: const EdgeInsets.fromLTRB(12, 8, 12, 8),
|
|
child: activePanel,
|
|
);
|
|
}
|
|
}
|
|
|