import React, { useState, FC } from 'react'; import { useTranslation } from 'react-i18next'; import { UncontrolledTooltip } from 'reactstrap'; import { withUnstatedContainers } from './UnstatedUtils'; import { toastError } from '~/client/util/apiNotification'; import AppContainer from '~/client/services/AppContainer'; import PageContainer from '~/client/services/PageContainer'; type Props = { appContainer: AppContainer, pageContainer: PageContainer, }; const SubscruibeButton: FC = (props: Props) => { const { t } = useTranslation(); const [isWatching, setIsWatching] = useState(true); const { appContainer, pageContainer } = props; const handleClick = async() => { try { const res = await appContainer.apiv3Put('page/subscribe', { pageId: pageContainer.state.pageId, status: !isWatching }); if (res) { const { subscription } = res.data; setIsWatching(subscription.status === 'WATCH'); } } catch (err) { toastError(err); } }; return ( <> {appContainer.isGuestUser && ( {t('Not available for guest')} )} ); }; /** * Wrapper component for using unstated */ const SubscruibeButtonWrapper = withUnstatedContainers(SubscruibeButton, [AppContainer, PageContainer]); export default SubscruibeButtonWrapper;