reactivate-subscription.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { useTranslation } from 'react-i18next'
  2. import { postJSON } from '../../../../infrastructure/fetch-json'
  3. import { reactivateSubscriptionUrl } from '../../data/subscription-url'
  4. import useAsync from '../../../../shared/hooks/use-async'
  5. import { useLocation } from '../../../../shared/hooks/use-location'
  6. import getMeta from '../../../../utils/meta'
  7. function ReactivateSubscription() {
  8. const { t } = useTranslation()
  9. const { isLoading, isSuccess, runAsync } = useAsync()
  10. const location = useLocation()
  11. const handleReactivate = () => {
  12. runAsync(postJSON(reactivateSubscriptionUrl)).catch(console.error)
  13. }
  14. if (isSuccess) {
  15. location.reload()
  16. }
  17. // Don't show the button to reactivate the subscription for managed users
  18. if (getMeta('ol-cannot-reactivate-subscription')) {
  19. return null
  20. }
  21. return (
  22. <button
  23. type="button"
  24. className="btn btn-primary"
  25. disabled={isLoading || isSuccess}
  26. onClick={handleReactivate}
  27. >
  28. {t('reactivate_subscription')}
  29. </button>
  30. )
  31. }
  32. export default ReactivateSubscription