MaintenanceModeContent.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import React from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { toastError } from '~/client/util/apiNotification';
  4. import { apiv3Post } from '~/client/util/apiv3-client';
  5. import { useCurrentUser } from '~/stores/context';
  6. const MaintenanceModeContent = () => {
  7. const { t } = useTranslation();
  8. const { data: currentUser } = useCurrentUser();
  9. const logoutHandler = async() => {
  10. try {
  11. await apiv3Post('/logout');
  12. window.location.reload();
  13. }
  14. catch (err) {
  15. toastError(err);
  16. }
  17. };
  18. return (
  19. <div className="text-left">
  20. <p>
  21. <i className="icon-arrow-right"></i>
  22. <a className="btn btn-link" href="/admin">{ t('maintenance_mode.admin_page') }</a>
  23. </p>
  24. {currentUser != null
  25. ? (
  26. <p>
  27. <i className="icon-arrow-right"></i>
  28. <a className="btn btn-link" onClick={logoutHandler} id="maintanounse-mode-logout">{ t('maintenance_mode.logout') }</a>
  29. </p>
  30. )
  31. : (
  32. <p>
  33. <i className="icon-arrow-right"></i>
  34. <a className="btn btn-link" href="/login">{ t('maintenance_mode.login') }</a>
  35. </p>
  36. )
  37. }
  38. </div>
  39. );
  40. };
  41. export default MaintenanceModeContent;