feat: 评论默认排序

This commit is contained in:
guozhigq
2023-08-24 12:23:38 +08:00
parent 4314b0fc3c
commit 535cf69967
4 changed files with 88 additions and 18 deletions

View File

@ -1,11 +1,13 @@
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/http/reply.dart';
import 'package:pilipala/models/common/reply_sort_type.dart';
import 'package:pilipala/models/common/reply_type.dart';
import 'package:pilipala/models/video/reply/item.dart';
import 'package:pilipala/utils/feed_back.dart';
import 'package:pilipala/utils/storage.dart';
class VideoReplyController extends GetxController {
VideoReplyController(
@ -29,10 +31,22 @@ class VideoReplyController extends GetxController {
// 当前回复的回复
ReplyItemModel? currentReplyItem;
ReplySortType sortType = ReplySortType.time;
ReplySortType _sortType = ReplySortType.time;
RxString sortTypeTitle = ReplySortType.time.titles.obs;
RxString sortTypeLabel = ReplySortType.time.labels.obs;
Box setting = GStrorage.setting;
@override
void onInit() {
super.onInit();
int deaultReplySortIndex =
setting.get(SettingBoxKey.replySortType, defaultValue: 0);
_sortType = ReplySortType.values[deaultReplySortIndex];
sortTypeTitle.value = _sortType.titles;
sortTypeLabel.value = _sortType.labels;
}
Future queryReplyList({type = 'init'}) async {
isLoadingMore = true;
if (type == 'init') {
@ -46,7 +60,7 @@ class VideoReplyController extends GetxController {
pageNum: currentPage + 1,
ps: ps,
type: ReplyType.video.index,
sort: sortType.index,
sort: _sortType.index,
);
if (res['status']) {
List<ReplyItemModel> replies = res['data'].replies;
@ -95,20 +109,20 @@ class VideoReplyController extends GetxController {
queryBySort() {
EasyThrottle.throttle('queryBySort', const Duration(seconds: 1), () {
feedBack();
switch (sortType) {
switch (_sortType) {
case ReplySortType.time:
sortType = ReplySortType.like;
_sortType = ReplySortType.like;
break;
case ReplySortType.like:
sortType = ReplySortType.reply;
_sortType = ReplySortType.reply;
break;
case ReplySortType.reply:
sortType = ReplySortType.time;
_sortType = ReplySortType.time;
break;
default:
}
sortTypeTitle.value = sortType.titles;
sortTypeLabel.value = sortType.labels;
sortTypeTitle.value = _sortType.titles;
sortTypeLabel.value = _sortType.labels;
currentPage = 0;
noMore.value = '';
replyList.clear();