export default function useModelProps()

in packages-rc/console-base-rc-tooltip/src/model/hook/_use-model-props.ts [24:76]


export default function useModelProps(): [IModelPropsSafe, IPropsDom] {
  const {
    props
  } = useModelContext();
  
  return useMemo((): [IModelPropsSafe, IPropsDom] => {
    const {
      title,
      content,
      theme = ETooltipTheme.NORMAL,
      placement = ETooltipPlacement.TOP,
      arrow = true,
      arrowOffset,
      visible,
      defaultVisible = false,
      closable,
      autoClose = 0,
      autoCloseKey = '',
      autoCloseCounter = true,
      onConfig,
      onClose,
      ...propsDom
    } = props;
    let autoCloseSeconds = 0;
    
    if (autoClose === true) {
      autoCloseSeconds = 5;
    } else if (autoClose) {
      const n = Math.round(autoClose);
      
      if (n > 0) {
        autoCloseSeconds = n; // 保证正整数
      }
    }
    
    return [{
      title,
      content,
      theme,
      placement,
      arrow,
      arrowOffset,
      visible,
      defaultVisible,
      closable,
      autoClose: autoCloseSeconds,
      autoCloseKey,
      autoCloseCounter,
      onConfig,
      onClose
    }, propsDom];
  }, [props]);
}