import 'package:fintracker_api/fintracker_api.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../core/widgets/async_value_view.dart'; import 'providers.dart'; /// Switches every portfolio screen at once. Hidden while there is nothing to choose /// between — a dropdown with one option is furniture, not a control. class ScopeSelector extends ConsumerWidget { const ScopeSelector({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final scopes = ref.watch(scopesProvider); final current = ref.watch(scopeProvider); return AsyncValueView>( value: scopes, data: (rows) { if (rows.length < 2) return const SizedBox.shrink(); final known = rows.any((s) => s.scope == current) ? current : rows.first.scope; return DropdownButtonHideUnderline( child: DropdownButton( value: known, borderRadius: BorderRadius.circular(8), items: [ for (final s in rows) DropdownMenuItem( value: s.scope, child: Text(s.name, overflow: TextOverflow.ellipsis), ), ], onChanged: (value) { if (value != null) ref.read(scopeProvider.notifier).state = value; }, ), ); }, ); } }