cyberhybridhub/lib/admin/widgets/admin_app_bar_action.dart
2026-05-31 11:17:12 -05:00

44 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import '../admin_routes.dart';
import '../services/admin_access_service.dart';
import '../services/market_history_admin_api.dart';
/// App bar icon shown when the signed-in user's Firebase UID is on the admin allowlist.
class AdminAppBarAction extends StatefulWidget {
const AdminAppBarAction({super.key, this.api});
final MarketHistoryAdminApi? api;
@override
State<AdminAppBarAction> createState() => _AdminAppBarActionState();
}
class _AdminAppBarActionState extends State<AdminAppBarAction> {
@override
void initState() {
super.initState();
AdminAccessService.instance.refresh(api: widget.api);
}
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<AdminAccessStatus>(
valueListenable: AdminAccessService.instance.status,
builder: (BuildContext context, AdminAccessStatus access, Widget? child) {
if (access != AdminAccessStatus.authorized) {
return const SizedBox.shrink();
}
return IconButton(
key: const Key('admin-app-bar-action'),
tooltip: 'Admin portal',
onPressed: () {
Navigator.of(context).pushNamed(AdminRoutes.marketHistoryLog);
},
icon: const Icon(Icons.admin_panel_settings_outlined),
);
},
);
}
}