✨ Able to block anyone
💄 Optimize user profile page
This commit is contained in:
@ -23,6 +23,7 @@ class AccountHeadingWidget extends StatelessWidget {
|
||||
final AccountProfile? profile;
|
||||
final List<AccountBadge>? badges;
|
||||
final List<Widget>? extraWidgets;
|
||||
final List<Widget>? appendWidgets;
|
||||
|
||||
final Future<Response>? status;
|
||||
final Function? onEditStatus;
|
||||
@ -39,6 +40,7 @@ class AccountHeadingWidget extends StatelessWidget {
|
||||
this.profile,
|
||||
this.status,
|
||||
this.extraWidgets,
|
||||
this.appendWidgets,
|
||||
this.onEditStatus,
|
||||
});
|
||||
|
||||
@ -257,6 +259,7 @@ class AccountHeadingWidget extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
).paddingSymmetric(horizontal: 16),
|
||||
...?appendWidgets?.map((x) => x.paddingSymmetric(horizontal: 16)),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
@ -106,10 +106,14 @@ class _AccountProfilePopupState extends State<AccountProfilePopup> {
|
||||
extraWidgets: [
|
||||
Card(
|
||||
child: ListTile(
|
||||
leading: const Icon(
|
||||
Icons.contact_page_outlined,
|
||||
),
|
||||
shape: const RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.all(Radius.circular(8)),
|
||||
),
|
||||
title: Text('visitProfilePage'.tr),
|
||||
subtitle: Text('learMoreAboutPerson'.tr),
|
||||
visualDensity:
|
||||
const VisualDensity(horizontal: -4, vertical: -2),
|
||||
trailing: const Icon(Icons.chevron_right),
|
||||
|
@ -28,42 +28,46 @@ class SilverRelativeList extends StatelessWidget {
|
||||
showModalBottomSheet(
|
||||
useRootNavigator: true,
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Theme
|
||||
.of(context)
|
||||
.colorScheme
|
||||
.surface,
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
context: context,
|
||||
builder: (context) =>
|
||||
AccountProfilePopup(
|
||||
name: element.related.name,
|
||||
),
|
||||
builder: (context) => AccountProfilePopup(
|
||||
name: element.related.name,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
trailing: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
if(element.status != 1 && element.status != 3)
|
||||
if (element.status != 1 && element.status != 3)
|
||||
IconButton(
|
||||
icon: const Icon(Icons.check),
|
||||
onPressed: () {
|
||||
final RelationshipProvider provider = Get.find();
|
||||
if (element.status == 0) {
|
||||
provider.handleRelation(element, true).then((_) => onUpdate());
|
||||
provider
|
||||
.handleRelation(element, true)
|
||||
.then((_) => onUpdate());
|
||||
} else {
|
||||
provider.editRelation(element, 1).then((_) => onUpdate());
|
||||
provider
|
||||
.editRelation(element.relatedId, 1)
|
||||
.then((_) => onUpdate());
|
||||
}
|
||||
},
|
||||
),
|
||||
if(element.status != 2 && element.status != 3)
|
||||
if (element.status != 2 && element.status != 3)
|
||||
IconButton(
|
||||
icon: const Icon(Icons.close),
|
||||
onPressed: () {
|
||||
final RelationshipProvider provider = Get.find();
|
||||
if (element.status == 0) {
|
||||
provider.handleRelation(element, false).then((_) => onUpdate());
|
||||
provider
|
||||
.handleRelation(element, false)
|
||||
.then((_) => onUpdate());
|
||||
} else {
|
||||
provider.editRelation(element, 2).then((_) => onUpdate());
|
||||
provider
|
||||
.editRelation(element.relatedId, 2)
|
||||
.then((_) => onUpdate());
|
||||
}
|
||||
},
|
||||
),
|
||||
|
Reference in New Issue
Block a user