UNPKG

@alauda/doom

Version:

Doctor Doom making docs.

20 lines (19 loc) 1.01 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { clsx } from 'clsx'; import { useCallback, useState } from 'react'; import { Input } from '../Input/index.js'; export const FocusInput = ({ Component = Input, className, style, placeholder, value, onFocus, onBlur, ...props }) => { const [active, setActive] = useState(!!value); const [focus, setFocus] = useState(false); const handleFocus = useCallback((ev) => { setActive(true); setFocus(true); onFocus?.(ev); }, [onFocus]); const handleBlur = useCallback((ev) => { setActive(!!ev.target.value); setFocus(false); onBlur?.(ev); }, [onBlur]); return (_jsxs("div", { className: clsx('focus-input', { 'focus-input--active': active, 'focus-input--focus': focus }, className), style: style, children: [_jsx(Component, { onFocus: handleFocus, onBlur: handleBlur, ...props }), _jsx("span", { className: "focus-input__placeholder", children: placeholder })] })); };