PageAccessories.jsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import PageAccessoriesModalControl from './PageAccessoriesModalControl';
  4. import PageAccessoriesModal from './PageAccessoriesModal';
  5. import { withUnstatedContainers } from './UnstatedUtils';
  6. import AppContainer from '../services/AppContainer';
  7. import PageAccessoriesContainer from '../services/PageAccessoriesContainer';
  8. const PageAccessories = (props) => {
  9. const { appContainer, pageAccessoriesContainer } = props;
  10. const isGuestUserMode = appContainer.currentUser == null;
  11. // not render only when this page is shared and user is not login.
  12. if (appContainer.isSharedUser && isGuestUserMode) {
  13. return null;
  14. }
  15. return (
  16. <>
  17. <PageAccessoriesModalControl isGuestUserMode={isGuestUserMode} />
  18. <PageAccessoriesModal
  19. isGuestUserMode={isGuestUserMode}
  20. isOpen={pageAccessoriesContainer.state.isPageAccessoriesModalShown}
  21. onClose={pageAccessoriesContainer.closePageAccessoriesModal}
  22. />
  23. </>
  24. );
  25. };
  26. /**
  27. * Wrapper component for using unstated
  28. */
  29. const PageAccessoriesWrapper = withUnstatedContainers(PageAccessories, [AppContainer, PageAccessoriesContainer]);
  30. PageAccessories.propTypes = {
  31. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  32. pageAccessoriesContainer: PropTypes.instanceOf(PageAccessoriesContainer).isRequired,
  33. };
  34. export default PageAccessoriesWrapper;