import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { useRouter } from 'next/router';
import { get } from 'lib/web';
import { setShareToken } from 'redux/actions/app';

export default function useShareToken(shareId) {
  const { basePath } = useRouter();
  const dispatch = useDispatch();
  const shareToken = useSelector(state => state.app.shareToken);

  async function loadToken(id) {
    const { data } = await get(`${basePath}/api/share/${id}`);

    if (data) {
      dispatch(setShareToken(data));
    }
  }

  useEffect(() => {
    if (shareId) {
      loadToken(shareId);
    }
  }, [shareId]);

  return shareToken;
}