diff --git a/lib/pages/member/new/controller.dart b/lib/pages/member/new/controller.dart index 02ef2a3c..0c022d08 100644 --- a/lib/pages/member/new/controller.dart +++ b/lib/pages/member/new/controller.dart @@ -88,15 +88,7 @@ class MemberControllerNew extends CommonController TextButton( onPressed: () async { Get.back(); - var res = await VideoHttp.relationMod( - mid: mid ?? -1, - act: relation.value != -1 ? 5 : 6, - reSrc: 11, - ); - if (res['status']) { - relation.value = relation.value != -1 ? -1 : 1; - isFollow.value = false; - } + _onBlock(); }, child: const Text('确认'), ) @@ -109,4 +101,26 @@ class MemberControllerNew extends CommonController void shareUser() { Share.share('https://space.bilibili.com/$mid'); } + + void _onBlock() async { + dynamic res = await VideoHttp.relationMod( + mid: mid ?? -1, + act: relation.value != -1 ? 5 : 6, + reSrc: 11, + ); + if (res['status']) { + relation.value = relation.value != -1 ? -1 : 1; + isFollow.value = false; + } + } + + void onFollow() async { + if (relation.value == -1) { + _onBlock(); + } else if (!isFollow.value) { + // TODO + } else { + // TODO + } + } } diff --git a/lib/pages/member/new/member_page.dart b/lib/pages/member/new/member_page.dart index 743e1945..5f236be0 100644 --- a/lib/pages/member/new/member_page.dart +++ b/lib/pages/member/new/member_page.dart @@ -298,7 +298,7 @@ class _MemberPageNewState extends State isFollow: _userController.isFollow.value, card: userState.response.card, images: userState.response.images, - // onFollow: _userController.onFollow, + onFollow: _userController.onFollow, ), ); } diff --git a/lib/pages/member/new/widget/user_info_card.dart b/lib/pages/member/new/widget/user_info_card.dart index a095f064..d58fa7fd 100644 --- a/lib/pages/member/new/widget/user_info_card.dart +++ b/lib/pages/member/new/widget/user_info_card.dart @@ -16,14 +16,14 @@ class UserInfoCard extends StatelessWidget { required this.images, required this.relation, required this.isFollow, - // required this.onFollow, + required this.onFollow, }); final int relation; final bool isFollow; final space.Card card; final space.Images images; - // final Function(dynamic uid, dynamic isFollow) onFollow; + final VoidCallback onFollow; @override Widget build(BuildContext context) { @@ -154,10 +154,10 @@ class UserInfoCard extends StatelessWidget { onTap: () { if (index == 0) { Get.toNamed( - '/follow?mid=${card.mid}&name=${card.name}'); + '/fan?mid=${card.mid}&name=${card.name}'); } else if (index == 2) { Get.toNamed( - '/fan?mid=${card.mid}&name=${card.name}'); + '/follow?mid=${card.mid}&name=${card.name}'); } }, ), @@ -206,7 +206,7 @@ class UserInfoCard extends StatelessWidget { ), const SizedBox(width: 10), FilledButton.tonal( - onPressed: () {}, + onPressed: onFollow, style: FilledButton.styleFrom( backgroundColor: relation == -1 || isFollow ? Theme.of(context).colorScheme.onInverseSurface