Files
PiliPlus/lib/pages/follow/controller.dart
bggRGjQaUbCoE 8b28a31d09 refa: follow page
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
2025-04-21 20:25:46 +08:00

53 lines
1.4 KiB
Dart

import 'package:PiliPlus/http/loading_state.dart';
import 'package:PiliPlus/http/member.dart';
import 'package:PiliPlus/models/member/tags.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/utils/storage.dart';
class FollowController extends GetxController
with GetSingleTickerProviderStateMixin {
late int mid;
String? name;
late bool isOwner;
late final Rx<LoadingState<List<MemberTagItemModel>?>> followState =
LoadingState<List<MemberTagItemModel>?>.loading().obs;
TabController? tabController;
@override
void onInit() {
super.onInit();
int ownerMid = Accounts.main.mid;
mid = Get.parameters['mid'] != null
? int.parse(Get.parameters['mid']!)
: ownerMid;
isOwner = ownerMid == mid;
name =
Get.parameters['name'] ?? GStorage.userInfo.get('userInfoCache')?.uname;
if (isOwner) {
queryFollowUpTags();
}
}
Future queryFollowUpTags() async {
var res = await MemberHttp.followUpTags();
if (res['status']) {
tabController = TabController(
initialIndex: 0,
length: res['data'].length,
vsync: this,
);
followState.value = LoadingState.success(res['data']);
} else {
followState.value = LoadingState.error(res['msg']);
}
}
@override
void onClose() {
tabController?.dispose();
super.onClose();
}
}