Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-10-13 14:34:15 +08:00
parent 84d5a24bc3
commit 9f6ef0281a
4 changed files with 11 additions and 7 deletions

View File

@@ -76,7 +76,7 @@ abstract final class DanmakuHttp {
required int id, required int id,
}) async { }) async {
final data = { final data = {
'op': isLike ? 2 : 1, 'op': isLike ? 1 : 2,
'dmid': id, 'dmid': id,
'oid': cid, 'oid': cid,
'platform': 'web_player', 'platform': 'web_player',

View File

@@ -73,6 +73,7 @@ class AudioController extends GetxController
String? _prev; String? _prev;
String? _next; String? _next;
bool get reachStart => _prev == null;
@override @override
void onInit() { void onInit() {

View File

@@ -179,9 +179,11 @@ class _AudioPageState extends State<AudioPage> {
onRefresh: () => _controller.loadPrev(context), onRefresh: () => _controller.loadPrev(context),
child: CustomScrollView( child: CustomScrollView(
controller: scrollController, controller: scrollController,
physics: const AlwaysScrollableScrollPhysics( physics: _controller.reachStart
parent: ClampingScrollPhysics(), ? const ClampingScrollPhysics()
), : const AlwaysScrollableScrollPhysics(
parent: ClampingScrollPhysics(),
),
slivers: [ slivers: [
SliverPadding( SliverPadding(
padding: EdgeInsets.only( padding: EdgeInsets.only(

View File

@@ -71,14 +71,15 @@ class HeaderControl extends StatefulWidget {
SmartDialog.showToast('请先登录'); SmartDialog.showToast('请先登录');
return false; return false;
} }
final isLike = !extra.isLike;
final res = await DanmakuHttp.danmakuLike( final res = await DanmakuHttp.danmakuLike(
isLike: extra.isLike, isLike: isLike,
cid: cid, cid: cid,
id: extra.id, id: extra.id,
); );
if (res.isSuccess) { if (res.isSuccess) {
extra.isLike = !extra.isLike; extra.isLike = isLike;
SmartDialog.showToast('点赞成功'); SmartDialog.showToast('${isLike ? '' : '取消'}点赞成功');
return true; return true;
} else { } else {
res.toast(); res.toast();