UNPKG

@heymarco/next-auth

Version:

A complete authentication solution for web applications.

39 lines (38 loc) 1.02 kB
'use client'; // react: import { // hooks: useState, useMemo, } from 'react'; // reusable-ui core: import { // react helper hooks: useEvent, } from '@reusable-ui/core'; // a set of reusable-ui packages which are responsible for building any component export const useFieldState = (options) => { // states: const [field, setField] = useState(''); const [isFocus, setIsFocus] = useState(false); // handlers: const handleFieldChange = useEvent((event) => { setField(event.target.value); options?.onChange?.(event); }); const handleFocus = useEvent((event) => { setIsFocus(true); options?.onFocus?.(event); }); const handleBlur = useEvent((event) => { setIsFocus(false); options?.onBlur?.(event); }); // api: return [ field, setField, isFocus, useMemo(() => ({ onChange: handleFieldChange, onFocus: handleFocus, onBlur: handleBlur, }), []), ]; };