import 'package:flutter/material.dart'; import 'package:fluffychat/pangea/bot/utils/bot_name.dart'; import 'package:fluffychat/pangea/user/models/profile_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; class LevelDisplayName extends StatefulWidget { final String userId; const LevelDisplayName({ required this.userId, super.key, }); @override State createState() => LevelDisplayNameState(); } class LevelDisplayNameState extends State { PublicProfileModel? _profile; bool _loading = true; String? _error; @override void initState() { super.initState(); _fetchProfile(); } Future _fetchProfile() async { try { final userController = MatrixState.pangeaController.userController; _profile = await userController.getPublicProfile(widget.userId); } catch (e) { _error = e.toString(); } finally { if (mounted) setState(() => _loading = false); } } @override Widget build(BuildContext context) { if (widget.userId == BotName.byEnvironment) { return const SizedBox(); } return Padding( padding: const EdgeInsets.symmetric( horizontal: 8.0, vertical: 4.0, ), child: Row( children: [ if (_loading) const CircularProgressIndicator() else if (_error != null || _profile == null) const SizedBox() else Row( spacing: 4.0, children: [ if (_profile?.baseLanguage != null && _profile?.targetLanguage != null) Text( _profile!.baseLanguage!.langCodeShort.toUpperCase(), style: TextStyle( fontWeight: FontWeight.bold, color: Theme.of(context).colorScheme.primary, ), ), if (_profile?.baseLanguage != null && _profile?.targetLanguage != null) const Icon( Icons.arrow_forward_outlined, size: 16.0, ), if (_profile?.targetLanguage != null) Text( _profile!.targetLanguage!.langCodeShort.toUpperCase(), style: TextStyle( fontWeight: FontWeight.bold, color: Theme.of(context).colorScheme.primary, ), ), if (_profile?.level != null) const Text("⭐"), if (_profile?.level != null) Text( "${_profile!.level!}", style: TextStyle( fontWeight: FontWeight.bold, color: Theme.of(context).colorScheme.primary, ), ), ], ), ], ), ); } }