Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

PollsPane.js 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* eslint-disable react-native/no-color-literals */
  2. // @flow
  3. import { useNavigation, useIsFocused } from '@react-navigation/native';
  4. import React, { useEffect } from 'react';
  5. import { Button, useTheme } from 'react-native-paper';
  6. import { useSelector } from 'react-redux';
  7. import JitsiScreen from '../../../base/modal/components/JitsiScreen';
  8. import { BUTTON_MODES } from '../../../chat/constants';
  9. import { getUnreadPollCount } from '../../functions';
  10. import AbstractPollsPane from '../AbstractPollsPane';
  11. import type { AbstractProps } from '../AbstractPollsPane';
  12. import PollCreate from './PollCreate';
  13. import PollsList from './PollsList';
  14. import { chatStyles } from './styles';
  15. const PollsPane = (props: AbstractProps) => {
  16. const { createMode, onCreate, setCreateMode, t } = props;
  17. const isPollsScreenFocused = useIsFocused();
  18. const navigation = useNavigation();
  19. const nbUnreadPolls = useSelector(getUnreadPollCount);
  20. const { palette } = useTheme();
  21. const nrUnreadPolls = !isPollsScreenFocused && nbUnreadPolls > 0
  22. ? `(${nbUnreadPolls})`
  23. : '';
  24. useEffect(() => {
  25. navigation.setOptions({
  26. tabBarLabel: `${t('chat.tabs.polls')} ${nrUnreadPolls}`
  27. });
  28. }, [ nrUnreadPolls ]);
  29. return (
  30. <JitsiScreen
  31. contentContainerStyle = { chatStyles.PollPane }
  32. hasTabNavigator = { true }
  33. style = { chatStyles.PollPaneContainer }>
  34. {
  35. createMode
  36. ? <PollCreate setCreateMode = { setCreateMode } />
  37. : <PollsList />
  38. }
  39. {
  40. !createMode && <Button
  41. color = { palette.screen01Header }
  42. mode = { BUTTON_MODES.CONTAINED }
  43. onPress = { onCreate }
  44. style = { chatStyles.createPollButton } >
  45. {t('polls.create.create')}
  46. </Button>
  47. }
  48. </JitsiScreen>
  49. );
  50. };
  51. /*
  52. * We apply AbstractPollsPane to fill in the AbstractProps common
  53. * to both the web and native implementations.
  54. */
  55. // eslint-disable-next-line new-cap
  56. export default AbstractPollsPane(PollsPane);