mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 16:44:15 +08:00
Merge pull request #264 from 0112020179/codex/fix-plugin-source-display
fix(frontend): display plugin data source names
This commit is contained in:
@@ -64,6 +64,7 @@ import { useDialogBackdrop } from '@/lib/useDialogBackdrop'
|
|||||||
import { resolveWatchlistGroupColor } from '@/lib/watchlist-group-colors'
|
import { resolveWatchlistGroupColor } from '@/lib/watchlist-group-colors'
|
||||||
import { computeGroupPcts, groupPctColor, groupPctTitle } from '@/lib/watchlistGroupStats'
|
import { computeGroupPcts, groupPctColor, groupPctTitle } from '@/lib/watchlistGroupStats'
|
||||||
import { fmtPct } from '@/lib/format'
|
import { fmtPct } from '@/lib/format'
|
||||||
|
import { findDataSource } from '@/lib/dataSources'
|
||||||
import { toggleTheme, useTheme } from '@/lib/theme'
|
import { toggleTheme, useTheme } from '@/lib/theme'
|
||||||
import { setCurrentTotal as setAlertTotal, useUnreadAlerts } from '@/lib/monitorBadge'
|
import { setCurrentTotal as setAlertTotal, useUnreadAlerts } from '@/lib/monitorBadge'
|
||||||
import { ExtensionSlot } from '@/extensions/ExtensionSlot'
|
import { ExtensionSlot } from '@/extensions/ExtensionSlot'
|
||||||
@@ -493,10 +494,10 @@ export function Layout() {
|
|||||||
const realtimeUnavailable = quoteMode === 'none'
|
const realtimeUnavailable = quoteMode === 'none'
|
||||||
const isWatchlistMode = quoteMode === 'watchlist'
|
const isWatchlistMode = quoteMode === 'watchlist'
|
||||||
const realtimeModeLabel = isWatchlistMode ? '自选股' : '全市场'
|
const realtimeModeLabel = isWatchlistMode ? '自选股' : '全市场'
|
||||||
// 当前实时行情数据源名称 (custom 时显示源名, tickflow 时不显示)
|
// 当前实时行情数据源名称 (插件/自定义源显示源名, tickflow 不显示)
|
||||||
const realtimeProvider = prefs?.realtime_data_provider
|
const realtimeProvider = prefs?.realtime_data_provider
|
||||||
const realtimeProviderName = realtimeProvider && realtimeProvider !== 'tickflow'
|
const realtimeProviderName = realtimeProvider && realtimeProvider !== 'tickflow'
|
||||||
? (dataSources?.custom?.find(s => s.name === realtimeProvider)?.display_name || realtimeProvider)
|
? (findDataSource(dataSources, realtimeProvider)?.display_name || realtimeProvider)
|
||||||
: null
|
: null
|
||||||
const realtimeToggleDisabled = toggleQuote.isPending || isPaused
|
const realtimeToggleDisabled = toggleQuote.isPending || isPaused
|
||||||
const realtimeActive = realtimeEnabled && isRunning && isTrading
|
const realtimeActive = realtimeEnabled && isRunning && isTrading
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import type { DataSourcesResponse } from './api'
|
||||||
|
|
||||||
|
export function findDataSource(
|
||||||
|
sources: DataSourcesResponse | undefined,
|
||||||
|
name: string | undefined,
|
||||||
|
) {
|
||||||
|
if (!sources || !name) return undefined
|
||||||
|
return sources.builtin.find(source => source.name === name)
|
||||||
|
?? sources.plugins.find(source => source.name === name)
|
||||||
|
?? sources.custom.find(source => source.name === name)
|
||||||
|
}
|
||||||
@@ -36,6 +36,7 @@ import { QK } from '@/lib/queryKeys'
|
|||||||
import { PageHeader } from '@/components/PageHeader'
|
import { PageHeader } from '@/components/PageHeader'
|
||||||
import { useAdjFactorSyncGate } from '@/components/AdjFactorSyncGate'
|
import { useAdjFactorSyncGate } from '@/components/AdjFactorSyncGate'
|
||||||
import { formatScheduleDatePart, formatScheduleTimePart, isToday } from '@/lib/format'
|
import { formatScheduleDatePart, formatScheduleTimePart, isToday } from '@/lib/format'
|
||||||
|
import { findDataSource } from '@/lib/dataSources'
|
||||||
|
|
||||||
// 拆分出的子组件
|
// 拆分出的子组件
|
||||||
import { StatCard, type FieldTab, type CapLimitValue } from '@/components/data/StatCard'
|
import { StatCard, type FieldTab, type CapLimitValue } from '@/components/data/StatCard'
|
||||||
@@ -193,7 +194,7 @@ export function Data() {
|
|||||||
const activeProvider = prefs.data?.daily_data_provider || 'tickflow'
|
const activeProvider = prefs.data?.daily_data_provider || 'tickflow'
|
||||||
const activeDataSourceName = activeProvider === 'tickflow'
|
const activeDataSourceName = activeProvider === 'tickflow'
|
||||||
? 'TickFlow'
|
? 'TickFlow'
|
||||||
: (dataSources.data?.custom?.find(s => s.name === activeProvider)?.display_name || activeProvider)
|
: (findDataSource(dataSources.data, activeProvider)?.display_name || activeProvider)
|
||||||
|
|
||||||
// —— 能力路由门控 (全项目统一判定) ——
|
// —— 能力路由门控 (全项目统一判定) ——
|
||||||
// usable = 生效源当前能否提供该能力 (含插件/自定义源; TickFlow 档位不足则不可用),
|
// usable = 生效源当前能否提供该能力 (含插件/自定义源; TickFlow 档位不足则不可用),
|
||||||
|
|||||||
Reference in New Issue
Block a user