Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3182 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import { useState, useEffect } from 'react'
import { useDispatch, useSelector } from 'react-redux'

import {
  closeShareModal,
  openShareModal,
  setModalType
} from '@store/share-modal/shareModal.actions'

export function useShareModal() {
  const [showConfirm, setShowConfirm] = useState(false)
  const dispatch = useDispatch()

  const { isOpen, postUrl, modalType, lastModalType, feedType, feedSharedId } =
    useSelector((state) => state.shareModal)

  const toggleConfirm = () => setShowConfirm(!showConfirm)

  const onConfirm = () => {
    setShowConfirm(false)
    dispatch(openShareModal(postUrl, modalType, feedType))
  }

  const onReject = () => {
    setShowConfirm(false)
    setModalType(lastModalType)
    dispatch(closeShareModal())
    dispatch(openShareModal(postUrl, lastModalType, feedType))
  }

  const close = () => {
    dispatch(closeShareModal())
  }

  useEffect(() => {
    if (modalType !== lastModalType) {
      close()
      toggleConfirm()
    }
  }, [modalType, lastModalType])

  return {
    show: isOpen,
    postUrl,
    modalType,
    lastModalType,
    feedType,
    feedSharedId,
    onConfirm,
    onReject,
    close,
    showConfirm
  }
}