AdminHomeContainer.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { Container } from 'unstated';
  2. import loggerFactory from '@alias/logger';
  3. import { toastError } from '../util/apiNotification';
  4. // eslint-disable-next-line no-unused-vars
  5. const logger = loggerFactory('growi:services:AdminHomeContainer');
  6. /**
  7. * Service container for admin home page (AdminHome.jsx)
  8. * @extends {Container} unstated Container
  9. */
  10. export default class AdminCustomizeContainer extends Container {
  11. constructor(appContainer) {
  12. super();
  13. this.appContainer = appContainer;
  14. this.state = {
  15. retrieveError: null,
  16. version: '',
  17. };
  18. }
  19. /**
  20. * Workaround for the mangling in production build to break constructor.name
  21. */
  22. static getClassName() {
  23. return 'AdminHomeContainer';
  24. }
  25. /**
  26. * retrieve admin home data
  27. */
  28. async retrieveAdminHomeData() {
  29. try {
  30. const response = await this.appContainer.apiv3.get('/home/');
  31. const { adminHomeParams } = response.data;
  32. this.setState({
  33. version: adminHomeParams.version,
  34. });
  35. }
  36. catch (err) {
  37. logger.error(err);
  38. toastError(new Error('Failed to fetch data'));
  39. }
  40. }
  41. }