fix(client): 连接后延迟用内核 urltest 实测 + 侧栏套餐到期日接真
- 延迟:TCP 探针在隧道开启时会被路由进隧道而测不到(显示 —)。改为连接后 (phase==on)取内核 statsStream 的 urltest delayMs 最小正值(代理真实 RTT), 未连接时仍用节点 TCP 探针。连接页 _SpeedRow/_NodePill/_CurrentNodeCard 与统计页平均延迟统一此口径。 - plan_badge_card(侧栏)接 me.expiresAt 显示真实到期日(原只显示「有效期至」 无日期);account_page 之外漏改的最后一处。 flutter analyze 0 error;114 tests passed。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../pangolin_theme.dart';
|
||||
import '../state/account_providers.dart';
|
||||
import '../state/app_providers.dart';
|
||||
import 'pangolin_icons.dart';
|
||||
|
||||
@@ -17,6 +18,11 @@ class PlanBadgeCard extends ConsumerWidget {
|
||||
final c = context.pangolin;
|
||||
final t = ref.watch(appTextProvider);
|
||||
final isFree = ref.watch(isFreePlanProvider);
|
||||
final exp = ref.watch(meProvider).valueOrNull?.expiresAt;
|
||||
String two(int v) => v.toString().padLeft(2, '0');
|
||||
final expLine = exp == null
|
||||
? t.expires
|
||||
: '${t.expires} ${exp.toLocal().year}-${two(exp.toLocal().month)}-${two(exp.toLocal().day)}';
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 11, vertical: 9),
|
||||
@@ -51,7 +57,7 @@ class PlanBadgeCard extends ConsumerWidget {
|
||||
style: PangolinText.caption.copyWith(color: c.fg1, fontWeight: FontWeight.w600, fontSize: 12),
|
||||
),
|
||||
Text(
|
||||
isFree ? t.quotaFree : t.expires,
|
||||
isFree ? t.quotaFree : expLine,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: PangolinText.caption.copyWith(color: c.fg3, fontSize: 10.5),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user