refactor: 优化日历状态管理与首页输入框,添加API客户端抽象

This commit is contained in:
qzl
2026-02-27 18:36:21 +08:00
parent 80d04688fc
commit 3d6ae7695f
20 changed files with 2146 additions and 801 deletions
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lucide_icons/lucide_icons.dart';
import '../../../../core/theme/design_tokens.dart';
enum DockTab { todo, calendar }
@@ -20,8 +21,13 @@ class BottomDock extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
height: 61,
padding: const EdgeInsets.only(left: 20, right: 20, top: 12, bottom: 18),
height: 72,
padding: const EdgeInsets.only(
left: AppSpacing.xl,
right: AppSpacing.xl,
top: AppSpacing.md,
bottom: AppSpacing.lg,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [_buildToggle(), _buildHomeBtn()],
@@ -33,9 +39,9 @@ class BottomDock extends StatelessWidget {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 5, vertical: 4),
decoration: BoxDecoration(
color: const Color(0xFFFDFEFF),
borderRadius: BorderRadius.circular(24),
border: Border.all(color: const Color(0xFFDCE6F4)),
color: AppColors.todoToggleBg,
borderRadius: BorderRadius.circular(AppRadius.xxl),
border: Border.all(color: AppColors.todoToggleBorder),
),
child: Row(
mainAxisSize: MainAxisSize.min,
@@ -67,16 +73,18 @@ class BottomDock extends StatelessWidget {
width: 44,
height: 44,
decoration: BoxDecoration(
color: isActive ? const Color(0xFFD6E6FF) : Colors.transparent,
borderRadius: BorderRadius.circular(18),
color: isActive ? AppColors.todoToggleActiveBg : Colors.transparent,
borderRadius: BorderRadius.circular(AppRadius.xl),
border: Border.all(
color: isActive ? const Color(0xFFBFD6FB) : Colors.transparent,
color: isActive
? AppColors.todoToggleActiveBorder
: Colors.transparent,
),
),
child: Icon(
icon,
size: 20,
color: isActive ? const Color(0xFF1D4ED8) : const Color(0xFF334155),
color: isActive ? AppColors.blue600 : AppColors.slate700,
),
),
);
@@ -89,11 +97,15 @@ class BottomDock extends StatelessWidget {
width: 44,
height: 44,
decoration: BoxDecoration(
color: const Color(0xFFE6EEFB),
borderRadius: BorderRadius.circular(18),
border: Border.all(color: const Color(0xFFC9D8EE)),
color: AppColors.todoHomeBtnBg,
borderRadius: BorderRadius.circular(AppRadius.xl),
border: Border.all(color: AppColors.todoHomeBtnBorder),
),
child: const Icon(
LucideIcons.home,
size: 20,
color: AppColors.slate700,
),
child: const Icon(LucideIcons.home, size: 20, color: Color(0xFF1E3A8A)),
),
);
}