fix: add navigation links and account screen

- Fix empty onPressed handlers in login/home screens
- Add todo/calendar toggle navigation in bottom dock
- Fix message invite detail path (/messages/invites/:id)
- Add account screen with logout/switch account dialogs
- Add /settings/account route
This commit is contained in:
qzl
2026-02-25 12:06:14 +08:00
parent fa1164afa8
commit 02e5e52e1f
9 changed files with 300 additions and 36 deletions
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:lucide_icons/lucide_icons.dart';
import '../../../../core/theme/design_tokens.dart';
@@ -14,7 +15,7 @@ class TodoQuadrantsScreen extends StatelessWidget {
children: [
_buildHeader(),
Expanded(child: _buildContent()),
_buildBottomDock(),
_buildBottomDock(context),
],
),
),
@@ -172,7 +173,7 @@ class TodoQuadrantsScreen extends StatelessWidget {
);
}
Widget _buildBottomDock() {
Widget _buildBottomDock(BuildContext context) {
return SizedBox(
height: 61,
child: Padding(
@@ -214,36 +215,42 @@ class TodoQuadrantsScreen extends StatelessWidget {
),
),
const SizedBox(width: 4),
Container(
width: 44,
height: 44,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(18),
),
child: const Icon(
LucideIcons.calendar,
size: 20,
color: AppColors.slate500,
GestureDetector(
onTap: () => context.push('/calendar/dayweek'),
child: Container(
width: 44,
height: 44,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(18),
),
child: const Icon(
LucideIcons.calendar,
size: 20,
color: AppColors.slate500,
),
),
),
],
),
),
Container(
width: 44,
height: 44,
decoration: BoxDecoration(
color: AppColors.todoHomeBtnBg,
borderRadius: BorderRadius.circular(18),
border: Border.all(
color: AppColors.todoHomeBtnBorder,
width: 1,
GestureDetector(
onTap: () => Navigator.of(context).pop(),
child: Container(
width: 44,
height: 44,
decoration: BoxDecoration(
color: AppColors.todoHomeBtnBg,
borderRadius: BorderRadius.circular(18),
border: Border.all(
color: AppColors.todoHomeBtnBorder,
width: 1,
),
),
child: const Icon(
LucideIcons.home,
size: 20,
color: Color(0xFF1E3A8A),
),
),
child: const Icon(
LucideIcons.home,
size: 20,
color: Color(0xFF1E3A8A),
),
),
],