import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../services/authentication_manager.dart'; class MeView extends StatefulWidget { const MeView({super.key}); @override State createState() => _MeViewState(); } class _MeViewState extends State { @override Widget build(BuildContext context) { final authManager = context.watch(); final userInfo = authManager.userInfo; return Scaffold( appBar: AppBar( title: const Text('Me'), ), body: ListView( children: [ _buildUserInfoSection(context, userInfo), ], ), ); } Widget _buildUserInfoSection(BuildContext context, userInfo) { return Container( padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ CircleAvatar( radius: 32, backgroundColor: Theme.of(context).colorScheme.primaryContainer, child: Icon( Icons.person, size: 32, color: Theme.of(context).colorScheme.onPrimaryContainer, ), ), const SizedBox(width: 16), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( userInfo?.name ?? 'N/A', style: Theme.of(context).textTheme.headlineSmall?.copyWith( fontWeight: FontWeight.bold, ), ), const SizedBox(height: 4), Text( userInfo?.username ?? 'N/A', style: Theme.of(context).textTheme.titleMedium?.copyWith( color: Colors.grey[600], ), ), ], ), ), ], ), const SizedBox(height: 16), _InfoRow( icon: Icons.numbers, label: 'User ID', value: userInfo?.id.toString() ?? 'N/A', ), ], ), ); } } class _InfoRow extends StatelessWidget { final IconData icon; final String label; final String value; const _InfoRow({ required this.icon, required this.label, required this.value, }); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.only(bottom: 12), child: Row( children: [ Icon(icon, size: 20, color: Theme.of(context).colorScheme.primary), const SizedBox(width: 12), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( label, style: Theme.of(context).textTheme.bodySmall?.copyWith( color: Colors.grey[600], ), ), Text( value, style: Theme.of(context).textTheme.bodyMedium?.copyWith( fontWeight: FontWeight.w500, ), ), ], ), ), ], ), ); } }