UNPKG

@tapie-kr/inspire-react

Version:

React Component Collection for INSPIRE

19 lines (16 loc) 1.13 kB
/* eslint-disable */ /* * INSPIRE : Creative Kit * React Component Collection for INSPIRE * * This file is generated automatically. Do not modify it manually * Generated at : 2025. 3. 4. 오후 6:18:13 * @tapie-kr/inspire-react version: 0.2.15 * * (c) 2025 TAPIE. All rights reserved. * MIT License */ import { useState, useCallback } from 'react'; import { useToggle } from '../../../../hooks/use-toggle.js'; function useSelectController(selectProps){const[value,setValue]=useState(selectProps.value||selectProps.defaultValue||"");const[isOpen,toggleOpen,setIsOpen]=useToggle(false);const[isFocused,_,setIsFocused]=useToggle(false);const handleSelect=useCallback(newValue=>{if(selectProps.onChange){const event={target:{value:newValue}};selectProps.onChange(event);}setValue(newValue);setIsOpen(false);},[selectProps.onChange,setIsOpen]);const onFocus=useCallback(()=>setIsFocused(true),[setIsFocused]);const onBlur=useCallback(()=>{setIsFocused(false);setTimeout(()=>setIsOpen(false),200);},[setIsFocused,setIsOpen]);return {value,isOpen,isFocused,toggleOpen,handleSelect,onFocus,onBlur}} export { useSelectController };