@tapie-kr/inspire-react
Version:
React Component Collection for INSPIRE
21 lines (17 loc) • 1.19 kB
JavaScript
/* 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
*/
;
var React = require('react');
var useToggle = require('../../../../hooks/use-toggle.js');
function useSelectController(selectProps){const[value,setValue]=React.useState(selectProps.value||selectProps.defaultValue||"");const[isOpen,toggleOpen,setIsOpen]=useToggle.useToggle(false);const[isFocused,_,setIsFocused]=useToggle.useToggle(false);const handleSelect=React.useCallback(newValue=>{if(selectProps.onChange){const event={target:{value:newValue}};selectProps.onChange(event);}setValue(newValue);setIsOpen(false);},[selectProps.onChange,setIsOpen]);const onFocus=React.useCallback(()=>setIsFocused(true),[setIsFocused]);const onBlur=React.useCallback(()=>{setIsFocused(false);setTimeout(()=>setIsOpen(false),200);},[setIsFocused,setIsOpen]);return {value,isOpen,isFocused,toggleOpen,handleSelect,onFocus,onBlur}}
exports.useSelectController = useSelectController;