import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:moneymgr_mobile/services/api/api_client.dart'; import 'package:moneymgr_mobile/services/storage/prefs.dart'; class ProfileScreen extends HookConsumerWidget { const ProfileScreen({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final data = ref.watch(prefsProvider); final api = ref.watch(apiServiceProvider); if (data.value == null) return CircularProgressIndicator(); final profile = data.value?.authInfo(); return Scaffold( appBar: AppBar(title: Text("Profile")), body: ListView( children: [ ListEntry( title: "Server URL", value: api?.token.apiUrl, icon: Icons.link, ), ListEntry( title: "Token ID", value: api?.token.tokenId.toString(), icon: Icons.key, ), ListEntry( title: "User ID", value: profile?.id.toString(), icon: Icons.perm_contact_calendar_outlined, ), ListEntry( title: "User name", value: profile?.name, icon: Icons.person, ), ListEntry(title: "User mail", value: profile?.mail, icon: Icons.mail), ], ), ); } } class ListEntry extends StatelessWidget { final String title; final String? value; final IconData icon; const ListEntry({ super.key, required this.title, required this.value, required this.icon, }); @override Widget build(BuildContext context) { return ListTile( title: Text(title), subtitle: Text(value ?? ""), leading: Icon(icon), ); } }