Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3181 | Rev 3183 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3181 stevensc 1
import { useState, useEffect } from 'react'
2
import { useDispatch, useSelector } from 'react-redux'
3
 
4
import {
5
  closeShareModal,
3182 stevensc 6
  openShareModal
3181 stevensc 7
} from '@store/share-modal/shareModal.actions'
8
 
9
export function useShareModal() {
10
  const [showConfirm, setShowConfirm] = useState(false)
11
  const dispatch = useDispatch()
12
 
13
  const { isOpen, postUrl, modalType, lastModalType, feedType, feedSharedId } =
14
    useSelector((state) => state.shareModal)
15
 
16
  const toggleConfirm = () => setShowConfirm(!showConfirm)
17
 
18
  const onConfirm = () => {
19
    setShowConfirm(false)
20
    dispatch(openShareModal(postUrl, modalType, feedType))
21
  }
22
 
23
  const onReject = () => {
24
    setShowConfirm(false)
25
    dispatch(openShareModal(postUrl, lastModalType, feedType))
26
  }
27
 
28
  const close = () => {
29
    dispatch(closeShareModal())
30
  }
31
 
32
  useEffect(() => {
33
    if (modalType !== lastModalType) {
34
      close()
35
      toggleConfirm()
36
    }
37
  }, [modalType, lastModalType])
38
 
39
  return {
40
    show: isOpen,
41
    postUrl,
42
    modalType,
43
    lastModalType,
44
    feedType,
45
    feedSharedId,
46
    onConfirm,
47
    onReject,
48
    close,
49
    showConfirm
50
  }
51
}