1
This commit is contained in:
@@ -3,10 +3,12 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
import '../../core/media/cover_cache.dart';
|
||||
import '../../core/network/api_exception.dart';
|
||||
import '../../core/theme/app_theme.dart';
|
||||
import '../../models/user_profile.dart';
|
||||
import '../../models/video_item.dart';
|
||||
import '../../providers/feed_provider.dart';
|
||||
import '../../providers/profile_provider.dart';
|
||||
import '../../services/user_service.dart';
|
||||
import '../../services/video_service.dart';
|
||||
@@ -77,8 +79,11 @@ class _GridCard extends ConsumerWidget {
|
||||
final bool editable;
|
||||
|
||||
/// 我的作品卡片点击:仅已发布可播放,其余状态提示原因
|
||||
void _onTap(BuildContext context) {
|
||||
void _onTap(BuildContext context, WidgetRef ref) {
|
||||
if (item.status == -1 || item.status == 2) {
|
||||
// 挂起首页池(保存断点 + 停所有槽位),恢复由 FeedScreen.didPopNext 统一处理
|
||||
final strategy = ref.read(activeFeedStrategyProvider);
|
||||
ref.read(feedProvider(strategy).notifier).pool.suspend();
|
||||
context.push('/search/play', extra: item);
|
||||
return;
|
||||
}
|
||||
@@ -158,7 +163,7 @@ class _GridCard extends ConsumerWidget {
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
return GestureDetector(
|
||||
onTap: () => _onTap(context),
|
||||
onTap: () => _onTap(context, ref),
|
||||
onLongPress: editable ? () => _showManageSheet(context, ref) : null,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
@@ -170,6 +175,7 @@ class _GridCard extends ConsumerWidget {
|
||||
child: item.coverUrl.isNotEmpty
|
||||
? CachedNetworkImage(
|
||||
imageUrl: item.coverUrl,
|
||||
cacheManager: CoverCacheManager.I,
|
||||
fit: BoxFit.cover,
|
||||
errorWidget: (_, __, ___) => const Icon(
|
||||
Icons.play_circle_outline,
|
||||
@@ -265,15 +271,20 @@ class HistoryScreen extends ConsumerWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class _HistoryTile extends StatelessWidget {
|
||||
class _HistoryTile extends ConsumerWidget {
|
||||
const _HistoryTile({required this.item});
|
||||
|
||||
final HistoryItem item;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
return ListTile(
|
||||
onTap: () => context.push('/search/play', extra: item.video),
|
||||
// 挂起首页池(保存断点 + 停所有槽位),恢复由 FeedScreen.didPopNext 统一处理
|
||||
onTap: () {
|
||||
final strategy = ref.read(activeFeedStrategyProvider);
|
||||
ref.read(feedProvider(strategy).notifier).pool.suspend();
|
||||
context.push('/search/play', extra: item.video);
|
||||
},
|
||||
leading: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
child: Container(
|
||||
@@ -283,6 +294,7 @@ class _HistoryTile extends StatelessWidget {
|
||||
child: item.video.coverUrl.isNotEmpty
|
||||
? CachedNetworkImage(
|
||||
imageUrl: item.video.coverUrl,
|
||||
cacheManager: CoverCacheManager.I,
|
||||
fit: BoxFit.cover,
|
||||
errorWidget: (_, __, ___) =>
|
||||
const Icon(Icons.play_circle_outline, size: 24),
|
||||
|
||||
Reference in New Issue
Block a user