ruvector/studio/components/interfaces/QueryPerformance/QueryPerformance.tsx
rUv 814f595995 feat(studio): Add complete RuVector Studio application
Major additions:
- Complete Next.js studio application with 1600+ components
- Docker support (Dockerfile.combined, docker-compose.yml)
- GCP deployment documentation and benchmarks
- SQL benchmark scripts for performance testing
- Sentry integration for monitoring
- Comprehensive test suite and mocks

Studio features:
- Dashboard and admin interfaces
- Data visualization components
- Authentication and user management
- API integration with RuVector backend
- Static data and public assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:04:48 +00:00

50 lines
1.4 KiB
TypeScript

import { useEffect } from 'react'
import { WithMonitor } from './WithMonitor/WithMonitor'
import { WithStatements } from './WithStatements/WithStatements'
import { useParams } from 'common'
import { DbQueryHook } from 'hooks/analytics/useDbQuery'
import { useDatabaseSelectorStateSnapshot } from 'state/database-selector'
import { PresetHookResult } from '../Reports/Reports.utils'
interface QueryPerformanceProps {
queryHitRate: PresetHookResult
queryPerformanceQuery: DbQueryHook<any>
queryMetrics: PresetHookResult
isPgStatMonitorEnabled: boolean
dateRange?: {
period_start: { date: string; time_period: string }
period_end: { date: string; time_period: string }
interval: string
}
onDateRangeChange?: (from: string, to: string) => void
}
export const QueryPerformance = ({
queryHitRate,
queryPerformanceQuery,
queryMetrics,
isPgStatMonitorEnabled,
dateRange,
onDateRangeChange,
}: QueryPerformanceProps) => {
const { ref } = useParams()
const state = useDatabaseSelectorStateSnapshot()
useEffect(() => {
state.setSelectedDatabaseId(ref)
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [ref])
if (isPgStatMonitorEnabled) {
return <WithMonitor dateRange={dateRange} onDateRangeChange={onDateRangeChange} />
}
return (
<WithStatements
queryHitRate={queryHitRate}
queryPerformanceQuery={queryPerformanceQuery}
queryMetrics={queryMetrics}
/>
)
}