Files
51dj_android/analytics_sdk/lib/widget/_tab_helpers.dart
T
2026-10-08 11:37:25 +07:00

21 lines
947 B
Dart

import 'package:analytics_sdk/entity/analytics_tab.dart';
import 'package:analytics_sdk/manager/page_name_manager.dart';
import 'package:analytics_sdk/utils/widget_bridge.dart';
/// Tab 解析与 track 分发的包内共享工具。
///
/// 供 widget 层各 analytics 包装使用,消除跨文件重复逻辑。
/// 文件名以下划线开头,表示不对外暴露。
/// 按索引解析 tab,超出范围时用 tab_N 兜底。
AnalyticsTab resolveTab(List<AnalyticsTab> tabs, int index) =>
index < tabs.length ? tabs[index] : AnalyticsTab('tab_$index');
/// 解析 tab 展示名称,未配置时通过 PageNameMapper 自动映射。
String resolveTabName(AnalyticsTab tab) =>
tab.name ?? PageNameMapper.getPageName(tab.key);
/// 上报事件:优先使用测试注入的 override,否则走 WidgetBridge.track。
void trackWith(void Function(dynamic)? override, Object event) =>
(override ?? WidgetBridge.track)(event);