feat: 查看up主收藏订阅

This commit is contained in:
guozhigq
2024-07-06 15:37:50 +08:00
parent bc842f4da5
commit 7ae637ed6a
12 changed files with 115 additions and 48 deletions

View File

@ -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') {

View File

@ -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);
},
),

View File

@ -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()
],
),
),