You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PollsPane.tsx 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import React from 'react';
  2. import { makeStyles } from 'tss-react/mui';
  3. import Button from '../../../base/ui/components/web/Button';
  4. import AbstractPollsPane, { AbstractProps } from '../AbstractPollsPane';
  5. import PollCreate from './PollCreate';
  6. import PollsList from './PollsList';
  7. /* eslint-enable lines-around-comment */
  8. const useStyles = makeStyles()(() => {
  9. return {
  10. container: {
  11. height: '100%',
  12. position: 'relative'
  13. },
  14. listContainer: {
  15. height: 'calc(100% - 88px)',
  16. overflowY: 'auto'
  17. },
  18. footer: {
  19. position: 'absolute',
  20. bottom: 0,
  21. padding: '24px',
  22. width: '100%',
  23. boxSizing: 'border-box'
  24. }
  25. };
  26. });
  27. const PollsPane = ({ createMode, onCreate, setCreateMode, t }: AbstractProps) => {
  28. const { classes } = useStyles();
  29. return createMode
  30. ? <PollCreate setCreateMode = { setCreateMode } />
  31. : <div className = { classes.container }>
  32. <div className = { classes.listContainer } >
  33. <PollsList />
  34. </div>
  35. <div className = { classes.footer }>
  36. <Button
  37. accessibilityLabel = { t('polls.create.create') }
  38. fullWidth = { true }
  39. labelKey = { 'polls.create.create' }
  40. onClick = { onCreate } />
  41. </div>
  42. </div>;
  43. };
  44. /*
  45. * We apply AbstractPollsPane to fill in the AbstractProps common
  46. * to both the web and native implementations.
  47. */
  48. // eslint-disable-next-line new-cap
  49. export default AbstractPollsPane(PollsPane);