Files
mtdb_movie/common/resources/client/ui/forms/input-field/input.tsx
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

46 lines
1.1 KiB
TypeScript
Executable File

import {FocusScope} from '@react-aria/focus';
import React, {ComponentPropsWithoutRef, CSSProperties, ReactNode} from 'react';
import clsx from 'clsx';
interface InputProps {
className?: string;
children: ReactNode;
autoFocus?: boolean;
disabled?: boolean;
style?: CSSProperties;
inputProps?: ComponentPropsWithoutRef<'div'>;
wrapperProps?: ComponentPropsWithoutRef<'div'>;
onClick?: React.MouseEventHandler<HTMLDivElement>;
}
export const Input = React.forwardRef<HTMLDivElement, InputProps>(
(props, ref) => {
const {
children,
inputProps,
wrapperProps,
className,
autoFocus,
style,
onClick,
} = props;
return (
<div {...wrapperProps} onClick={onClick}>
<div
{...inputProps}
role="group"
className={clsx(
className,
'flex items-center focus-within:ring focus-within:ring-primary/focus focus-within:border-primary/60'
)}
ref={ref}
style={style}
>
<FocusScope autoFocus={autoFocus}>{children}</FocusScope>
</div>
</div>
);
}
);