opt: singleton FollowTypeController (#1578)

This commit is contained in:
My-Responsitories
2025-10-15 21:13:56 +08:00
committed by GitHub
parent fb59c208e3
commit 77ec78e3fe
4 changed files with 17 additions and 17 deletions

View File

@@ -11,11 +11,11 @@ import 'package:get/get.dart';
class FansPage extends StatefulWidget { class FansPage extends StatefulWidget {
const FansPage({ const FansPage({
super.key, super.key,
this.showName, this.showName = true,
this.onSelect, this.onSelect,
}); });
final bool? showName; final bool showName;
final ValueChanged<UserModel>? onSelect; final ValueChanged<UserModel>? onSelect;
@override @override
@@ -25,15 +25,14 @@ class FansPage extends StatefulWidget {
class _FansPageState extends FollowTypePageState<FansPage> { class _FansPageState extends FollowTypePageState<FansPage> {
@override @override
late final FansController controller = Get.put( late final FansController controller = Get.put(
FansController(widget.showName ?? true), FansController(widget.showName),
tag: Utils.generateRandomString(8), tag: Get.parameters['mid'],
); );
late final flag = widget.onSelect == null && controller.isOwner; late final flag = widget.onSelect == null && controller.isOwner;
@override @override
PreferredSizeWidget? get appBar => widget.showName == false PreferredSizeWidget? get appBar => widget.showName
? null ? AppBar(
: AppBar(
title: controller.isOwner title: controller.isOwner
? const Text('我的粉丝') ? const Text('我的粉丝')
: Obx(() { : Obx(() {
@@ -41,7 +40,8 @@ class _FansPageState extends FollowTypePageState<FansPage> {
if (name != null) return Text('$name的粉丝'); if (name != null) return Text('$name的粉丝');
return const SizedBox.shrink(); return const SizedBox.shrink();
}), }),
); )
: null;
@override @override
Widget buildItem(int index, FollowItemModel item) { Widget buildItem(int index, FollowItemModel item) {

View File

@@ -1,6 +1,6 @@
import 'package:PiliPlus/pages/follow_type/follow_same/controller.dart'; import 'package:PiliPlus/pages/follow_type/follow_same/controller.dart';
import 'package:PiliPlus/pages/follow_type/view.dart'; import 'package:PiliPlus/pages/follow_type/view.dart';
import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -13,9 +13,9 @@ class FollowSamePage extends StatefulWidget {
class _FollowSamePageState extends FollowTypePageState<FollowSamePage> { class _FollowSamePageState extends FollowTypePageState<FollowSamePage> {
@override @override
final controller = Get.put( final controller = Get.putOrFind(
FollowSameController(), FollowSameController.new,
tag: Utils.generateRandomString(8), tag: Get.parameters['mid'],
); );
@override @override

View File

@@ -1,6 +1,6 @@
import 'package:PiliPlus/pages/follow_type/followed/controller.dart'; import 'package:PiliPlus/pages/follow_type/followed/controller.dart';
import 'package:PiliPlus/pages/follow_type/view.dart'; import 'package:PiliPlus/pages/follow_type/view.dart';
import 'package:PiliPlus/utils/utils.dart'; import 'package:PiliPlus/utils/extension.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -13,9 +13,9 @@ class FollowedPage extends StatefulWidget {
class _FollowedPageState extends FollowTypePageState<FollowedPage> { class _FollowedPageState extends FollowTypePageState<FollowedPage> {
@override @override
final controller = Get.put( final controller = Get.putOrFind(
FollowedController(), FollowedController.new,
tag: Utils.generateRandomString(8), tag: Get.parameters['mid'],
); );
@override @override

View File

@@ -25,7 +25,7 @@ abstract class FollowTypePageState<T extends StatefulWidget> extends State<T> {
onRefresh: controller.onRefresh, onRefresh: controller.onRefresh,
child: CustomScrollView( child: CustomScrollView(
physics: const AlwaysScrollableScrollPhysics(), physics: const AlwaysScrollableScrollPhysics(),
controller: controller.scrollController, // controller: controller.scrollController,
slivers: [ slivers: [
ViewSliverSafeArea( ViewSliverSafeArea(
sliver: Obx( sliver: Obx(