1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-10-23 15:03:22 +00:00
comunicmobile/lib/ui/screens/user_page_sections/about_user_section.dart

88 lines
2.9 KiB
Dart
Raw Normal View History

2021-03-17 16:40:25 +00:00
import 'package:comunic/enums/user_page_visibility.dart';
import 'package:comunic/models/advanced_user_info.dart';
import 'package:comunic/models/displayed_content.dart';
import 'package:comunic/ui/widgets/text_widget.dart';
import 'package:comunic/utils/date_utils.dart';
import 'package:comunic/utils/intl_utils.dart';
/// About current user
///
/// @author Pierre Hubert
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class AboutUserSection extends StatefulWidget {
final AdvancedUserInfo user;
const AboutUserSection({
Key key,
@required this.user,
}) : assert(user != null),
super(key: key);
@override
_AboutUserSectionState createState() => _AboutUserSectionState();
}
class _AboutUserSectionState extends State<AboutUserSection> {
@override
Widget build(BuildContext context) => ListView(
children: [
// Account URL
widget.user.hasPersonalWebsite
? ListTile(
leading: Icon(Icons.link),
title: Text(tr("Personal Website")),
subtitle: Text(widget.user.personalWebsite),
onTap: () => launch(widget.user.personalWebsite),
)
: Container(),
// Account note
widget.user.hasPublicNote
? ListTile(
leading: Icon(Icons.note),
title: Text(tr("Note")),
subtitle: TextWidget(
content: DisplayedString(widget.user.publicNote)),
)
: Container(),
// Virtual directory
widget.user.hasVirtualDirectory
? ListTile(
leading: Icon(Icons.alternate_email),
title: Text(tr("Virtual directory")),
subtitle: Text("@${widget.user.virtualDirectory}"))
: Container(),
// Number of friends
widget.user.isFriendsListPublic
? ListTile(
leading: Icon(Icons.group),
title: Text(tr("Number of friends")),
subtitle: Text(widget.user.numberFriends.toString()),
)
: Container(),
// Member for
ListTile(
leading: Icon(Icons.access_time_rounded),
title: Text(tr("Member for")),
subtitle:
Text(diffTimeFromNowToStr(widget.user.accountCreationTime)),
),
// Account visibility
ListTile(
leading: Icon(Icons.remove_red_eye),
title: Text(tr("Account visibility")),
subtitle: Text(widget.user.pageVisibility == UserPageVisibility.OPEN
? tr("Open page")
: (widget.user.pageVisibility == UserPageVisibility.PUBLIC
? tr("Public page")
: tr("Private page"))),
),
],
);
}