根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
``` docs(readme): 更新文档说明 - 添加了项目使用指南 - 完善了API接口说明 - 修正了一些文字错误 ``` 注:由于未提供具体的代码差异信息,以上为示例格式。请提供具体的代码变更内容以便生成准确的commit message。
This commit is contained in:
@@ -18,11 +18,16 @@ struct CustomMetricsListView: View {
|
||||
if metrics.isEmpty {
|
||||
emptyState
|
||||
} else {
|
||||
// 一次性按 seriesKey 统计使用次数(O(indicators)),行内 O(1) 查表,
|
||||
// 取代「每行都重扫整张指标表」的 O(metrics × indicators) N+1。
|
||||
let usageCounts: [String: Int] = indicators.reduce(into: [:]) { acc, ind in
|
||||
if let key = ind.seriesKey, !key.isEmpty { acc[key, default: 0] += 1 }
|
||||
}
|
||||
ForEach(metrics) { m in
|
||||
Button {
|
||||
editingTarget = CustomMetricEditTarget(metric: m)
|
||||
} label: {
|
||||
row(m)
|
||||
row(m, usage: usageCounts[m.seriesKey] ?? 0)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
}
|
||||
@@ -82,9 +87,8 @@ struct CustomMetricsListView: View {
|
||||
.frame(maxWidth: .infinity)
|
||||
}
|
||||
|
||||
private func row(_ m: CustomMonitorMetric) -> some View {
|
||||
let count = usageCount(for: m)
|
||||
return HStack(spacing: 12) {
|
||||
private func row(_ m: CustomMonitorMetric, usage count: Int) -> some View {
|
||||
HStack(spacing: 12) {
|
||||
ZStack {
|
||||
Circle().fill(Tj.Palette.leafSoft)
|
||||
Image(systemName: m.icon)
|
||||
@@ -137,9 +141,6 @@ struct CustomMetricsListView: View {
|
||||
)
|
||||
}
|
||||
|
||||
private func usageCount(for m: CustomMonitorMetric) -> Int {
|
||||
indicators.filter { $0.seriesKey == m.seriesKey }.count
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
|
||||
Reference in New Issue
Block a user