wwf
2025-05-20 938c3e5a587ce950a94964ea509b9e7f8834dfae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { useCallback, useState } from 'react'
import useFoldAnimInto from './use-fold-anim-into'
 
const useHideLogic = (onClose: () => void) => {
  const {
    modalClassName,
    foldIntoAnim: doFoldAnimInto,
    clearCountDown,
    countDownFoldIntoAnim,
  } = useFoldAnimInto(onClose)
 
  const [isInstalling, doSetIsInstalling] = useState(false)
  const setIsInstalling = useCallback((isInstalling: boolean) => {
    if (!isInstalling)
      clearCountDown()
    doSetIsInstalling(isInstalling)
  }, [clearCountDown])
 
  const foldAnimInto = useCallback(() => {
    if (isInstalling) {
      doFoldAnimInto()
      return
    }
    onClose()
  }, [doFoldAnimInto, isInstalling, onClose])
 
  const handleStartToInstall = useCallback(() => {
    setIsInstalling(true)
    countDownFoldIntoAnim()
  }, [countDownFoldIntoAnim, setIsInstalling])
 
  return {
    modalClassName,
    foldAnimInto,
    setIsInstalling,
    handleStartToInstall,
  }
}
 
export default useHideLogic