MaintenanceModeContent.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import React from 'react';
  2. import { useTranslation } from 'next-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. {currentUser?.admin
  21. && (
  22. <p>
  23. <i className="icon-arrow-right"></i>
  24. <a className="btn btn-link" href="/admin">{ t('maintenance_mode.admin_page') }</a>
  25. </p>
  26. )}
  27. {currentUser != null
  28. ? (
  29. <p>
  30. <i className="icon-arrow-right"></i>
  31. <a className="btn btn-link" onClick={logoutHandler} id="maintanounse-mode-logout">{ t('maintenance_mode.logout') }</a>
  32. </p>
  33. )
  34. : (
  35. <p>
  36. <i className="icon-arrow-right"></i>
  37. <a className="btn btn-link" href="/login">{ t('maintenance_mode.login') }</a>
  38. </p>
  39. )
  40. }
  41. </div>
  42. );
  43. };
  44. export default MaintenanceModeContent;