FixedControls.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import NavigationContainer from '../services/NavigationContainer';
  4. import { withUnstatedContainers } from './UnstatedUtils';
  5. const FixedControls = (props) => {
  6. const { navigationContainer } = props;
  7. const { showFav } = navigationContainer.state;
  8. const showClasses = showFav ? ['animated fadeInUp faster'] : ['invisible'];
  9. return (
  10. <div className="grw-fixed-controls d-none d-md-block">
  11. <div className={`rounded-circle position-absolute ${showClasses.join(' ')}`} style={{ bottom: '2.3rem', right: '3rem' }}>
  12. <button
  13. type="button"
  14. className="btn btn-lg btn-create-page btn-primary rounded-circle waves-effect waves-light"
  15. onClick={navigationContainer.openPageCreateModal}
  16. >
  17. <i className="icon-pencil"></i>
  18. </button>
  19. </div>
  20. <div className={`rounded-circle position-absolute ${showClasses.join(' ')}`} style={{ bottom: 0, right: 0 }}>
  21. <button type="button" className="btn btn-light btn-scroll-to-top rounded-circle" onClick={() => navigationContainer.smoothScrollIntoView()}>
  22. <i className="icon-control-start"></i>
  23. </button>
  24. </div>
  25. </div>
  26. );
  27. };
  28. FixedControls.propTypes = {
  29. navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
  30. };
  31. export default withUnstatedContainers(FixedControls, [NavigationContainer]);