Skip to content

Commit

Permalink
🚸 Make block methods as one method.
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexV525 committed Feb 16, 2020
1 parent 43b6a46 commit 3470d86
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 56 deletions.
27 changes: 21 additions & 6 deletions lib/api/user_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -169,9 +169,7 @@ class UserAPI {
return users;
}

///
/// Blacklists.
///
static final blacklist = <BlacklistUser>{};

static Future getBlacklist({int pos, int size}) {
Expand All @@ -180,28 +178,45 @@ class UserAPI {
);
}

static void confirmBlock(context, BlacklistUser user) async {
final add = !UserAPI.blacklist.contains(user);
final confirm = await ConfirmationDialog.show(
context,
title: '${add ? '加入' : '移出'}黑名单',
content: '确定将此人${add ? '加入' : '移出'}黑名单吗?',
showConfirm: true,
);
if (confirm) {
if (add) {
UserAPI.fAddToBlacklist(user);
} else {
UserAPI.fRemoveFromBlacklist(user);
}
}
}

static void fAddToBlacklist(BlacklistUser user) {
if (blacklist.contains(user)) {
showToast('仇恨值拉满啦!不要重复屏蔽噢~');
} else {
NetUtils.postWithCookieSet(API.addToBlacklist, data: {'fid': user.uid}).then((response) {
blacklist.add(user);
showToast('屏蔽成功');
showToast('加入黑名单成功');
Instances.eventBus.fire(BlacklistUpdateEvent());
unFollow(user.uid, fromBlacklist: true);
}).catchError((e) {
showToast('屏蔽失败');
showToast('加入黑名单失败');
debugPrint('Add $user to blacklist failed : $e');
});
}
}

static void fRemoveFromBlacklist(BlacklistUser user) {
blacklist.remove(user);
showToast('取消屏蔽成功');
showToast('移出黑名单成功');
Instances.eventBus.fire(BlacklistUpdateEvent());
NetUtils.postWithCookieSet(API.removeFromBlacklist, data: {'fid': user.uid}).catchError((e) {
showToast('取消屏蔽失败');
showToast('移出黑名单失败');
debugPrint('Remove $user from blacklist failed: $e');
if (blacklist.contains(user)) blacklist.remove(user);
Instances.eventBus.fire(BlacklistUpdateEvent());
Expand Down
21 changes: 7 additions & 14 deletions lib/pages/post/post_detail_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,13 @@ class PostDetailPageState extends State<PostDetailPage> {
)))
ConfirmationBottomSheetAction(
icon: Icon(Icons.visibility_off),
text: '屏蔽此人',
onTap: () => confirmBlock(context),
text: '${UserAPI.blacklist.contains(
BlacklistUser(uid: widget.post.uid, username: widget.post.nickname),
) ? '移出' : '加入'}黑名单',
onTap: () => UserAPI.confirmBlock(
context,
BlacklistUser(uid: widget.post.uid, username: widget.post.nickname),
),
),
ConfirmationBottomSheetAction(
icon: Icon(Icons.report),
Expand All @@ -238,18 +243,6 @@ class PostDetailPageState extends State<PostDetailPage> {
);
}

void confirmBlock(context) async {
final confirm = await ConfirmationDialog.show(
context,
title: '屏蔽此人',
content: '确定屏蔽此人吗',
showConfirm: true,
);
if (confirm) {
UserAPI.fAddToBlacklist(BlacklistUser(uid: widget.post.uid, username: widget.post.nickname));
}
}

void confirmReport(context) async {
final confirm = await ConfirmationDialog.show(
context,
Expand Down
26 changes: 9 additions & 17 deletions lib/widgets/cards/post_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -549,12 +549,16 @@ class _PostCardState extends State<PostCard> {
ConfirmationBottomSheet.show(
context,
children: <Widget>[
if (!UserAPI.blacklist.contains(widget.post.uid))
ConfirmationBottomSheetAction(
icon: Icon(Icons.visibility_off),
text: '屏蔽此人',
onTap: () => confirmBlock(context),
ConfirmationBottomSheetAction(
icon: Icon(Icons.visibility_off),
text: '${UserAPI.blacklist.contains(
BlacklistUser(uid: widget.post.uid, username: widget.post.nickname),
) ? '移出' : '加入'}黑名单',
onTap: () => UserAPI.confirmBlock(
context,
BlacklistUser(uid: widget.post.uid, username: widget.post.nickname),
),
),
ConfirmationBottomSheetAction(
icon: Icon(Icons.report),
text: '举报动态',
Expand All @@ -564,18 +568,6 @@ class _PostCardState extends State<PostCard> {
);
}

void confirmBlock(context) async {
final confirm = await ConfirmationDialog.show(
context,
title: '屏蔽此人',
content: '确定屏蔽此人吗',
showConfirm: true,
);
if (confirm) {
UserAPI.fAddToBlacklist(BlacklistUser(uid: widget.post.uid, username: widget.post.nickname));
}
}

void confirmReport(context) async {
final confirm = await ConfirmationDialog.show(
context,
Expand Down
28 changes: 9 additions & 19 deletions lib/widgets/cards/team_post_preview_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,16 @@ class TeamPostPreviewCard extends StatelessWidget {
ConfirmationBottomSheet.show(
context,
children: <Widget>[
if (!UserAPI.blacklist.contains(BlacklistUser(uid: post.uid, username: post.nickname)))
ConfirmationBottomSheetAction(
icon: Icon(Icons.visibility_off),
text: '屏蔽此人',
onTap: () => confirmBlock(context),
ConfirmationBottomSheetAction(
icon: Icon(Icons.visibility_off),
text: '${UserAPI.blacklist.contains(
BlacklistUser(uid: post.uid, username: post.nickname),
) ? '移出' : '加入'}黑名单',
onTap: () => UserAPI.confirmBlock(
context,
BlacklistUser(uid: post.uid, username: post.nickname),
),
),
ConfirmationBottomSheetAction(
icon: Icon(Icons.report),
text: '举报动态',
Expand All @@ -66,20 +70,6 @@ class TeamPostPreviewCard extends StatelessWidget {
);
}

void confirmBlock(context) async {
final provider = Provider.of<TeamPostProvider>(context, listen: false);
final post = provider.post;
final confirm = await ConfirmationDialog.show(
context,
title: '屏蔽此人',
content: '确定屏蔽此人吗?',
showConfirm: true,
);
if (confirm) {
UserAPI.fAddToBlacklist(BlacklistUser(uid: post.uid, username: post.nickname));
}
}

void confirmReport(context) async {
final provider = Provider.of<TeamPostProvider>(context, listen: false);
final post = provider.post;
Expand Down

0 comments on commit 3470d86

Please sign in to comment.