Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3182 | Ir a la última revisión | | 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,
6
  openShareModal,
7
  setModalType
8
} from '@store/share-modal/shareModal.actions'
9
 
10
export function useShareModal() {
11
  const [showConfirm, setShowConfirm] = useState(false)
12
  const dispatch = useDispatch()
13
 
14
  const { isOpen, postUrl, modalType, lastModalType, feedType, feedSharedId } =
15
    useSelector((state) => state.shareModal)
16
 
17
  const toggleConfirm = () => setShowConfirm(!showConfirm)
18
 
19
  const onConfirm = () => {
20
    setShowConfirm(false)
21
    dispatch(openShareModal(postUrl, modalType, feedType))
22
  }
23
 
24
  const onReject = () => {
25
    setShowConfirm(false)
26
    setModalType(lastModalType)
27
    dispatch(closeShareModal())
28
    dispatch(openShareModal(postUrl, lastModalType, feedType))
29
  }
30
 
31
  const close = () => {
32
    dispatch(closeShareModal())
33
  }
34
 
35
  useEffect(() => {
36
    if (modalType !== lastModalType) {
37
      close()
38
      toggleConfirm()
39
    }
40
  }, [modalType, lastModalType])
41
 
42
  return {
43
    show: isOpen,
44
    postUrl,
45
    modalType,
46
    lastModalType,
47
    feedType,
48
    feedSharedId,
49
    onConfirm,
50
    onReject,
51
    close,
52
    showConfirm
53
  }
54
}