opt: stat widget (#520)

This commit is contained in:
My-Responsitories
2025-03-24 21:09:11 +08:00
committed by GitHub
parent d9a74c43dc
commit 10a22b5186
15 changed files with 149 additions and 142 deletions

View File

@@ -12,8 +12,7 @@ import 'package:get/get.dart';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/models/bangumi/info.dart';
import 'package:PiliPlus/pages/bangumi/widgets/bangumi_panel.dart';
import 'package:PiliPlus/pages/video/detail/index.dart';
@@ -322,19 +321,19 @@ class _BangumiInfoState extends State<BangumiInfo>
),
Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: !widget.isLoading
value: !widget.isLoading
? widget.bangumiDetail!.stat!['views']
: bangumiItem!.stat!['views'],
size: 'medium',
),
const SizedBox(width: 6),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: !widget.isLoading
value: !widget.isLoading
? widget
.bangumiDetail!.stat!['danmakus']
: bangumiItem!.stat!['danmakus'],

View File

@@ -1,8 +1,7 @@
import 'package:PiliPlus/pages/common/common_collapse_slide_page.dart';
import 'package:PiliPlus/pages/search/widgets/search_text.dart';
import 'package:flutter/material.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:get/get.dart';
import '../../../../utils/utils.dart';
@@ -79,17 +78,17 @@ class _IntroDetailState extends CommonCollapseSlidePageState<IntroDetail> {
const SizedBox(height: 4),
Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: widget.bangumiDetail!.stat!['views'],
value: widget.bangumiDetail!.stat!['views'],
size: 'medium',
),
const SizedBox(width: 6),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: widget.bangumiDetail!.stat!['danmakus'],
value: widget.bangumiDetail!.stat!['danmakus'],
size: 'medium',
),
],

View File

@@ -6,8 +6,7 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:flutter/material.dart';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/http/video.dart';
import 'package:PiliPlus/utils/id_utils.dart';
@@ -192,16 +191,16 @@ class FavVideoCardH extends StatelessWidget {
padding: const EdgeInsets.only(top: 2),
child: Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: videoItem.cntInfo['play'],
value: videoItem.cntInfo['play'],
),
const SizedBox(width: 8),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: videoItem.cntInfo['danmaku'],
value: videoItem.cntInfo['danmaku'],
),
const Spacer(),
],

View File

@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/models/member/coin.dart';
import 'package:PiliPlus/utils/utils.dart';
@@ -78,9 +78,9 @@ class MemberCoinsItem extends StatelessWidget {
const SizedBox(height: 4),
Row(
children: [
statView(
StatView(
context: context,
view: coinItem.view,
value: coinItem.view!,
theme: 'gray',
),
const Spacer(),

View File

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/badge.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/utils/utils.dart';
@@ -72,9 +72,9 @@ class MemberSeasonsItem extends StatelessWidget {
const SizedBox(height: 4),
Row(
children: [
statView(
StatView(
context: context,
view: seasonItem.view,
value: seasonItem.view,
theme: 'gray',
),
const Spacer(),

View File

@@ -1,8 +1,7 @@
import 'package:PiliPlus/common/widgets/image_save.dart';
import 'package:flutter/material.dart';
import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/http/search.dart';
import 'package:PiliPlus/models/common/search_type.dart';
import 'package:PiliPlus/utils/utils.dart';
@@ -127,16 +126,16 @@ class SubVideoCardH extends StatelessWidget {
padding: const EdgeInsets.only(top: 2),
child: Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: videoItem.cntInfo?['play'],
value: videoItem.cntInfo?['play'],
),
const SizedBox(width: 8),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: videoItem.cntInfo?['danmaku'],
value: videoItem.cntInfo?['danmaku'],
),
const Spacer(),
],

View File

@@ -17,8 +17,7 @@ import 'package:PiliPlus/common/constants.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/pages/video/detail/index.dart';
import 'package:PiliPlus/common/widgets/network_img_layer.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/models/video_detail_res.dart';
import 'package:PiliPlus/pages/video/detail/introduction/controller.dart';
import 'package:PiliPlus/utils/feed_back.dart';
@@ -614,20 +613,20 @@ class _VideoInfoState extends State<VideoInfo> with TickerProviderStateMixin {
children: [
Row(
children: <Widget>[
statView(
StatView(
context: context,
theme: 'gray',
view: !widget.loadingStatus
value: !widget.loadingStatus
? videoDetail.stat?.view ?? '-'
: videoItem['stat']?.view ?? '-',
size: 'medium',
textColor: t.colorScheme.outline,
),
const SizedBox(width: 10),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: !widget.loadingStatus
value: !widget.loadingStatus
? videoDetail.stat?.danmu ?? '-'
: videoItem['stat']?.danmu ?? '-',
size: 'medium',

View File

@@ -4,8 +4,7 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/utils/utils.dart';
@Deprecated('deprecated')
@@ -55,17 +54,17 @@ class IntroDetail extends StatelessWidget {
const SizedBox(height: 6),
Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: videoDetail!.stat!.view,
value: videoDetail!.stat!.view,
size: 'medium',
),
const SizedBox(width: 10),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu: videoDetail!.stat!.danmu,
value: videoDetail!.stat!.danmu,
size: 'medium',
),
const SizedBox(width: 10),

View File

@@ -1,8 +1,7 @@
import 'package:PiliPlus/common/widgets/dialog.dart';
import 'package:PiliPlus/common/widgets/icon_button.dart';
import 'package:PiliPlus/common/widgets/refresh_indicator.dart';
import 'package:PiliPlus/common/widgets/stat/danmu.dart';
import 'package:PiliPlus/common/widgets/stat/view.dart';
import 'package:PiliPlus/common/widgets/stat/stat.dart';
import 'package:PiliPlus/pages/common/common_collapse_slide_page.dart';
import 'package:PiliPlus/pages/common/common_slide_page.dart';
import 'package:flutter/material.dart';
@@ -232,16 +231,16 @@ class _MediaListPanelState extends CommonSlidePageState<MediaListPanel> {
const SizedBox(height: 2),
Row(
children: [
statView(
StatView(
context: context,
theme: 'gray',
view: item.cntInfo!['play'] as int,
value: item.cntInfo!['play'] as int,
),
const SizedBox(width: 8),
statDanMu(
StatDanMu(
context: context,
theme: 'gray',
danmu:
value:
item.cntInfo!['danmaku'] as int,
),
],