Jimin Huang commited on
Commit
d7db594
·
1 Parent(s): 7e33fb5

Change settings

Browse files
Files changed (1) hide show
  1. src/views/LiveView.vue +22 -6
src/views/LiveView.vue CHANGED
@@ -3,7 +3,8 @@
3
  <!-- Toolbar: assets + mode -->
4
  <header class="toolbar">
5
  <div class="toolbar__left">
6
- <AssetTabs v-model="asset" />
 
7
  </div>
8
  <div class="toolbar__right">
9
  <div class="mode">
@@ -69,6 +70,10 @@ import AssetTabs from '../components/AssetTabs.vue'
69
  import CompareChartE from '../components/CompareChartE.vue'
70
  import { dataService } from '../lib/dataService'
71
 
 
 
 
 
72
  // ---- state ----
73
  const mode = ref('usd') // 'usd' | 'pct'
74
  const asset = ref('BTC')
@@ -83,7 +88,13 @@ onMounted(async () => {
83
  } catch (e) {
84
  console.error('LiveView: dataService.load failed', e)
85
  }
 
86
  agents.value = Array.isArray(dataService.tableRows) ? dataService.tableRows : []
 
 
 
 
 
87
  })
88
 
89
  // ---- helpers ----
@@ -93,9 +104,17 @@ function score(row) {
93
  const fmtUSD = (n) =>
94
  (n ?? 0).toLocaleString(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 2 })
95
 
 
 
 
 
 
 
 
 
96
  // Best model per agent for the selected asset (by balance)
97
  const winners = computed(() => {
98
- const rows = (agents.value || []).filter(r => r.asset === asset.value)
99
  const byAgent = new Map()
100
  for (const r of rows) {
101
  const k = r.agent_name
@@ -138,7 +157,7 @@ const winnersSorted = computed(() => [...winners.value].sort((a,b) => score(b) -
138
  justify-content: space-between;
139
  gap: 16px;
140
  padding: 8px 0 10px;
141
- background: #fff; /* keeps tabs visible while scrolling */
142
  }
143
  .toolbar__left { min-width: 0; }
144
  .toolbar__right { display: flex; align-items: center; gap: 10px; }
@@ -223,7 +242,4 @@ const winnersSorted = computed(() => [...winners.value].sort((a,b) => score(b) -
223
  }
224
  .card__left { min-width: 0; }
225
  .card__right { display: grid; gap: 4px; justify-items: end; }
226
-
227
- /* small utility */
228
- strong { font-weight: 700; }
229
  </style>
 
3
  <!-- Toolbar: assets + mode -->
4
  <header class="toolbar">
5
  <div class="toolbar__left">
6
+ <!-- If AssetTabs supports restricting options, this will remove MRNA from the UI -->
7
+ <AssetTabs v-model="asset" :ordered-assets="orderedAssets" />
8
  </div>
9
  <div class="toolbar__right">
10
  <div class="mode">
 
70
  import CompareChartE from '../components/CompareChartE.vue'
71
  import { dataService } from '../lib/dataService'
72
 
73
+ // ---- config: hide MRNA in tabs; drop Vanilla/Vinilla agents globally ----
74
+ const orderedAssets = ['BTC','ETH','MSFT','BMRN','TSLA'] // ← MRNA removed
75
+ const EXCLUDED_AGENT_NAMES = new Set(['vanilla', 'vinilla']) // case-insensitive match
76
+
77
  // ---- state ----
78
  const mode = ref('usd') // 'usd' | 'pct'
79
  const asset = ref('BTC')
 
88
  } catch (e) {
89
  console.error('LiveView: dataService.load failed', e)
90
  }
91
+ // Copy rows; we’ll filter “vanilla/vinilla” in computed getters below
92
  agents.value = Array.isArray(dataService.tableRows) ? dataService.tableRows : []
93
+
94
+ // Safety: if current asset is MRNA (e.g., from persisted state), push to first allowed
95
+ if (!orderedAssets.includes(asset.value)) {
96
+ asset.value = orderedAssets[0]
97
+ }
98
  })
99
 
100
  // ---- helpers ----
 
104
  const fmtUSD = (n) =>
105
  (n ?? 0).toLocaleString(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 2 })
106
 
107
+ const filteredRows = computed(() => {
108
+ // exclude agents named vanilla/vinilla, case-insensitive
109
+ return (agents.value || []).filter(r => {
110
+ const name = (r?.agent_name || '').toLowerCase()
111
+ return !EXCLUDED_AGENT_NAMES.has(name)
112
+ })
113
+ })
114
+
115
  // Best model per agent for the selected asset (by balance)
116
  const winners = computed(() => {
117
+ const rows = filteredRows.value.filter(r => r.asset === asset.value)
118
  const byAgent = new Map()
119
  for (const r of rows) {
120
  const k = r.agent_name
 
157
  justify-content: space-between;
158
  gap: 16px;
159
  padding: 8px 0 10px;
160
+ background: #fff;
161
  }
162
  .toolbar__left { min-width: 0; }
163
  .toolbar__right { display: flex; align-items: center; gap: 10px; }
 
242
  }
243
  .card__left { min-width: 0; }
244
  .card__right { display: grid; gap: 4px; justify-items: end; }
 
 
 
245
  </style>