feat(reward): 新增客户端奖励中心
This commit is contained in:
1 parent
67670d46b1
commit
bea08110c9
68 files changed
+3987
-332
No files matched your search
@@ -3,7 +3,7 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
/// 「我的」页与根导航之间的返回动作。
|
||||
enum MyPageAction { home, recommend, following, mine, resume }
|
||||
enum MyPageAction { home, recommend, reward, following, mine, resume }
|
||||
|
||||
/// 「我的」页可进入的功能目的地。
|
||||
enum MineDestination {
|
||||
|
||||
@@ -333,6 +333,7 @@ class _MyPageState extends State<MyPage> {
|
||||
MyPageAction _actionOf(AppRootTab tab) => switch (tab) {
|
||||
AppRootTab.home => MyPageAction.home,
|
||||
AppRootTab.recommend => MyPageAction.recommend,
|
||||
AppRootTab.reward => MyPageAction.reward,
|
||||
AppRootTab.following => MyPageAction.following,
|
||||
AppRootTab.mine => MyPageAction.mine,
|
||||
};
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../core/theme/app_colors.dart';
|
||||
import '../../../core/theme/app_dimens.dart';
|
||||
import '../../../core/widgets/app_press_scale.dart';
|
||||
import '../../../l10n/app_localizations.dart';
|
||||
import '../mine_types.dart';
|
||||
|
||||
@@ -31,7 +32,7 @@ class MineActionGrid extends StatelessWidget {
|
||||
key: const Key('mine-menu'),
|
||||
decoration: BoxDecoration(
|
||||
color: AppColors.mineGridSurface,
|
||||
border: Border.all(color: AppColors.contentBorder),
|
||||
border: Border.all(color: AppColors.glassHairline),
|
||||
borderRadius: BorderRadius.circular(AppDimens.mineGridRadius),
|
||||
),
|
||||
child: ClipRRect(
|
||||
@@ -176,16 +177,18 @@ class _MineActionCell extends StatelessWidget {
|
||||
child: InkWell(
|
||||
key: item.key,
|
||||
onTap: item.onTap,
|
||||
child: Semantics(
|
||||
button: true,
|
||||
label: item.label,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
_iconSurface(),
|
||||
const SizedBox(height: AppDimens.spaceSm),
|
||||
_label(),
|
||||
],
|
||||
child: AppPressScale(
|
||||
child: Semantics(
|
||||
button: true,
|
||||
label: item.label,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
_iconSurface(),
|
||||
const SizedBox(height: AppDimens.spaceSm),
|
||||
_label(),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -208,7 +211,7 @@ class _MineActionCell extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
shape: BoxShape.circle,
|
||||
border: Border.all(color: AppColors.glassBorder),
|
||||
border: Border.all(color: AppColors.glassHairline),
|
||||
boxShadow: [
|
||||
const BoxShadow(
|
||||
color: AppColors.shadowSoft,
|
||||
|
||||
@@ -123,7 +123,7 @@ class MineContinueWatching extends StatelessWidget {
|
||||
Positioned.fill(
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(
|
||||
AppDimens.homeCardRadius,
|
||||
AppDimens.coverRadius,
|
||||
),
|
||||
child: RemoteImage(
|
||||
record.dramaCover ?? '',
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import '../../../core/theme/app_colors.dart';
|
||||
import '../../../core/theme/app_dimens.dart';
|
||||
import '../../../core/widgets/app_press_scale.dart';
|
||||
import '../../../l10n/app_localizations.dart';
|
||||
|
||||
const double _vipMaxTextScale = 1.15;
|
||||
@@ -28,16 +29,18 @@ class MineVipBanner extends StatelessWidget {
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: InkWell(
|
||||
onTap: onOpen,
|
||||
child: MediaQuery.withClampedTextScaling(
|
||||
maxScaleFactor: _vipMaxTextScale,
|
||||
child: Stack(
|
||||
children: [
|
||||
const Positioned.fill(child: _VipAmbientGlow()),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(AppDimens.mineVipPadding),
|
||||
child: _VipContent(l10n: l10n, onOpen: onOpen),
|
||||
),
|
||||
],
|
||||
child: AppPressScale(
|
||||
child: MediaQuery.withClampedTextScaling(
|
||||
maxScaleFactor: _vipMaxTextScale,
|
||||
child: Stack(
|
||||
children: [
|
||||
const Positioned.fill(child: _VipAmbientGlow()),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(AppDimens.mineVipPadding),
|
||||
child: _VipContent(l10n: l10n, onOpen: onOpen),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user