From 020ff60b454401cbe0278ef2757e4ef610571ece Mon Sep 17 00:00:00 2001 From: chaoszhu Date: Sat, 13 Jun 2026 17:07:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E9=A1=B5=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- native/lib/features/auth/login_page.dart | 33 +++++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/native/lib/features/auth/login_page.dart b/native/lib/features/auth/login_page.dart index a5da8d8..8f7c6a5 100644 --- a/native/lib/features/auth/login_page.dart +++ b/native/lib/features/auth/login_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:url_launcher/url_launcher.dart'; import '../../core/ui/palette.dart'; import '../../core/utils/jwt_expiry.dart'; @@ -489,13 +490,31 @@ class _LoginHero extends ConsumerWidget { ), ), const SizedBox(height: 4), - Text( - versionLabel, - textAlign: TextAlign.center, - style: theme.textTheme.bodySmall?.copyWith( - color: AppPalette.softMuted, - fontWeight: FontWeight.w500, - ), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + versionLabel, + style: theme.textTheme.bodySmall?.copyWith( + color: AppPalette.softMuted, + fontWeight: FontWeight.w500, + ), + ), + if (versionLabel.isNotEmpty) ...[ + const SizedBox(width: 8), + GestureDetector( + onTap: () => launchUrl( + Uri.parse('https://github.com/chaos-zhu/easynode'), + mode: LaunchMode.externalApplication, + ), + child: const Icon( + Icons.open_in_new, + size: 14, + color: AppPalette.softMuted, + ), + ), + ], + ], ), ], );