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
}
}