mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-25 23:24:03 +00:00
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>
35 lines
901 B
TypeScript
35 lines
901 B
TypeScript
import { forwardRef, PropsWithChildren, useEffect, useRef } from 'react'
|
|
import { cn } from 'ui'
|
|
|
|
export const DataTableHeaderLayout = forwardRef<
|
|
HTMLDivElement,
|
|
PropsWithChildren<{
|
|
setTopBarHeight: (height: number) => void
|
|
}>
|
|
>(({ setTopBarHeight, ...props }, ref) => {
|
|
const topBarRef = useRef<HTMLDivElement>(null)
|
|
|
|
useEffect(() => {
|
|
const observer = new ResizeObserver(() => {
|
|
const rect = topBarRef.current?.getBoundingClientRect()
|
|
if (rect) {
|
|
setTopBarHeight(rect.height)
|
|
}
|
|
})
|
|
|
|
const topBar = topBarRef.current
|
|
if (!topBar) return
|
|
|
|
observer.observe(topBar)
|
|
return () => observer.unobserve(topBar)
|
|
}, [topBarRef])
|
|
|
|
return (
|
|
<div
|
|
ref={topBarRef}
|
|
className={cn('flex flex-col gap-4 bg-background p-2', 'top-0 z-10 pb-4')}
|
|
{...props}
|
|
/>
|
|
)
|
|
})
|
|
DataTableHeaderLayout.displayName = 'DataTableHeaderLayout'
|