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 createState() => _AdminAppBarActionState(); } class _AdminAppBarActionState extends State { @override void initState() { super.initState(); AdminAccessService.instance.refresh(api: widget.api); } @override Widget build(BuildContext context) { return ValueListenableBuilder( 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), ); }, ); } }