mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-28 01:44:41 +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>
38 lines
1,007 B
TypeScript
38 lines
1,007 B
TypeScript
import React, { forwardRef } from 'react'
|
|
import { cn } from 'ui'
|
|
|
|
interface DisableInteractionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
disabled?: boolean
|
|
}
|
|
|
|
/**
|
|
* DisableInteraction component
|
|
*
|
|
* A utility component that wraps content and prevents all user interactions when disabled
|
|
* including clicking, hovering, and text selection.
|
|
*
|
|
* @example
|
|
* <DisableInteraction disabled={isDisabled}>
|
|
* <YourContent />
|
|
* </DisableInteraction>
|
|
*/
|
|
export const DisableInteraction = forwardRef<HTMLDivElement, DisableInteractionProps>(
|
|
({ disabled, style, className, ...props }, ref) => (
|
|
<div
|
|
ref={ref}
|
|
{...props}
|
|
className={cn(disabled && 'opacity-50 pointer-events-none', className)}
|
|
style={{
|
|
...(disabled && {
|
|
userSelect: 'none',
|
|
WebkitUserSelect: 'none',
|
|
MozUserSelect: 'none',
|
|
msUserSelect: 'none',
|
|
}),
|
|
...style,
|
|
}}
|
|
/>
|
|
)
|
|
)
|
|
|
|
DisableInteraction.displayName = 'DisableInteraction'
|