import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { addFriend as connect, removeFriend as disconnect } from '../../helpers/rest';
import { toast } from 'react-toastify';
import { Modal, ModalBody, ModalHeader, ModalFooter, Button } from 'reactstrap';
import { useBrowserQuery } from '../../context/BrowserQuery';
const JKConnectButton = props => {
const { user, currentUser, addContent, removeContent, cssClasses } = props;
const [isFriend, setIsFriend] = useState(false);
const [pendingFriendRequest, setPendingFriendRequest] = useState(false);
const [showConfirmModal, setShowConfirmModal] = useState(false);
useEffect(() => {
setIsFriend(user.is_friend);
setPendingFriendRequest(user.pending_friend_request);
}, [user]);
const queryString = useBrowserQuery();
useEffect(() => {
const openWin = queryString.get('open');
const userId = queryString.get('id')
//sending friend request if directly reqested to do so
//by query string params (coming from weekly new user match email link)
if(openWin && userId && userId === user.id && !user.isFriend && !user.pending_friend_request){
if(openWin === 'connect'){
addFriend();
}
}
}, [])
const addFriend = () => {
setShowConfirmModal(!showConfirmModal);
setPendingFriendRequest(true);
connect(
currentUser.id,
user.id
)
.then(resp => {
if (resp.ok && resp.status === 201) {
toast.success(`Success! Your friend request has been sent to ${user.name}.`);
}
})
.catch(err => {
toast.error('An error encountered when sending friend request.');
setPendingFriendRequest(false);
});
};
const confirm = () => {
setShowConfirmModal(!showConfirmModal);
};
const removeFriend = () => {
disconnect(currentUser.id, user.id)
.then(resp => {
if (resp.ok) {
setIsFriend(false);
setPendingFriendRequest(false);
}
})
.catch(err => {
toast.error('An error encountered when removing friend');
});
};
const buttonTitle = () => {
let title;
if (pendingFriendRequest) {
title = 'There is a pending friend request';
} else if (!isFriend) {
title = 'Send friend request';
} else if (isFriend) {
title = 'Unfriend this person';
}
return title;
};
return (
<>
{!isFriend ? (
<>
{/* */}
>
) : (
)}
>
);
};
JKConnectButton.propTypes = {
user: PropTypes.object.isRequired,
currentUser: PropTypes.object.isRequired,
addContent: PropTypes.element.isRequired,
removeContent: PropTypes.element.isRequired
};
// const ConnectConfirmModal = props => {
// const { className, show, setShow, user, handleOnConfirm } = props;
// //const [modal, setModal] = useState(show);
// const toggle = () => setShow(!show);
// const accept = () => {
// handleOnConfirm();
// };
// return (
//
// Send Friend Request
// Send a friend request to {user.name}.
//
// {' '}
//
//
//
// );
// };
export default JKConnectButton;