feat: 查看up主收藏订阅
This commit is contained in:
@ -16,11 +16,17 @@ class SubController extends GetxController {
|
||||
int currentPage = 1;
|
||||
int pageSize = 20;
|
||||
RxBool hasMore = true.obs;
|
||||
late int mid;
|
||||
late int ownerMid;
|
||||
RxBool isOwner = false.obs;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
mid = int.parse(Get.parameters['mid'] ?? '-1');
|
||||
userInfo = userInfoCache.get('userInfoCache');
|
||||
ownerMid = userInfo != null ? userInfo!.mid! : -1;
|
||||
isOwner.value = mid == -1 || mid == ownerMid;
|
||||
}
|
||||
|
||||
Future<dynamic> querySubFolder({type = 'init'}) async {
|
||||
@ -30,7 +36,7 @@ class SubController extends GetxController {
|
||||
var res = await UserHttp.userSubFolder(
|
||||
pn: currentPage,
|
||||
ps: pageSize,
|
||||
mid: userInfo!.mid!,
|
||||
mid: isOwner.value ? ownerMid : mid,
|
||||
);
|
||||
if (res['status']) {
|
||||
if (type == 'init') {
|
||||
|
||||
@ -42,10 +42,10 @@ class _SubPageState extends State<SubPage> {
|
||||
appBar: AppBar(
|
||||
centerTitle: false,
|
||||
titleSpacing: 0,
|
||||
title: Text(
|
||||
'我的订阅',
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
),
|
||||
title: Obx(() => Text(
|
||||
'${_subController.isOwner.value ? '我' : 'Ta'}的订阅',
|
||||
style: Theme.of(context).textTheme.titleMedium,
|
||||
)),
|
||||
),
|
||||
body: FutureBuilder(
|
||||
future: _futureBuilderFuture,
|
||||
@ -62,6 +62,7 @@ class _SubPageState extends State<SubPage> {
|
||||
return SubItem(
|
||||
subFolderItem:
|
||||
_subController.subFolderData.value.list![index],
|
||||
isOwner: _subController.isOwner.value,
|
||||
cancelSub: _subController.cancelSub);
|
||||
},
|
||||
),
|
||||
|
||||
@ -8,10 +8,12 @@ import '../../../models/user/sub_folder.dart';
|
||||
|
||||
class SubItem extends StatelessWidget {
|
||||
final SubFolderItemData subFolderItem;
|
||||
final bool isOwner;
|
||||
final Function(SubFolderItemData) cancelSub;
|
||||
const SubItem({
|
||||
super.key,
|
||||
required this.subFolderItem,
|
||||
required this.isOwner,
|
||||
required this.cancelSub,
|
||||
});
|
||||
|
||||
@ -59,6 +61,7 @@ class SubItem extends StatelessWidget {
|
||||
),
|
||||
VideoContent(
|
||||
subFolderItem: subFolderItem,
|
||||
isOwner: isOwner,
|
||||
cancelSub: cancelSub,
|
||||
)
|
||||
],
|
||||
@ -73,8 +76,14 @@ class SubItem extends StatelessWidget {
|
||||
|
||||
class VideoContent extends StatelessWidget {
|
||||
final SubFolderItemData subFolderItem;
|
||||
final bool isOwner;
|
||||
final Function(SubFolderItemData)? cancelSub;
|
||||
const VideoContent({super.key, required this.subFolderItem, this.cancelSub});
|
||||
const VideoContent({
|
||||
super.key,
|
||||
required this.subFolderItem,
|
||||
required this.isOwner,
|
||||
this.cancelSub,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -111,22 +120,24 @@ class VideoContent extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
const Spacer(),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
IconButton(
|
||||
style: ButtonStyle(
|
||||
padding: MaterialStateProperty.all(EdgeInsets.zero),
|
||||
),
|
||||
onPressed: () => cancelSub?.call(subFolderItem),
|
||||
icon: Icon(
|
||||
Icons.clear_outlined,
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
size: 18,
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
isOwner
|
||||
? Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
IconButton(
|
||||
style: ButtonStyle(
|
||||
padding: MaterialStateProperty.all(EdgeInsets.zero),
|
||||
),
|
||||
onPressed: () => cancelSub?.call(subFolderItem),
|
||||
icon: Icon(
|
||||
Icons.clear_outlined,
|
||||
color: Theme.of(context).colorScheme.outline,
|
||||
size: 18,
|
||||
),
|
||||
)
|
||||
],
|
||||
)
|
||||
: const SizedBox()
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user