Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

InviteButton.tsx 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import React, { useCallback } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { useDispatch, useSelector } from 'react-redux';
  4. import { createToolbarEvent } from '../../../analytics/AnalyticsEvents';
  5. import { sendAnalytics } from '../../../analytics/functions';
  6. import { IReduxState } from '../../../app/types';
  7. import { getButtonNotifyMode, getButtonsWithNotifyClick } from '../../../base/config/functions.web';
  8. import { IconAddUser } from '../../../base/icons/svg';
  9. import Button from '../../../base/ui/components/web/Button';
  10. import { BUTTON_TYPES } from '../../../base/ui/constants.web';
  11. import { beginAddPeople } from '../../../invite/actions';
  12. import { NOTIFY_CLICK_MODE } from '../../../toolbox/constants';
  13. const INVITE_BUTTON_KEY = 'invite';
  14. export const InviteButton = () => {
  15. const dispatch = useDispatch();
  16. const { t } = useTranslation();
  17. const notifyMode = useSelector((state: IReduxState) => getButtonNotifyMode(
  18. INVITE_BUTTON_KEY,
  19. getButtonsWithNotifyClick(state)
  20. ));
  21. const onInvite = useCallback(() => {
  22. if (notifyMode) {
  23. APP.API.notifyToolbarButtonClicked(
  24. INVITE_BUTTON_KEY, notifyMode === NOTIFY_CLICK_MODE.PREVENT_AND_NOTIFY
  25. );
  26. }
  27. if (notifyMode === NOTIFY_CLICK_MODE.PREVENT_AND_NOTIFY) {
  28. return;
  29. }
  30. sendAnalytics(createToolbarEvent(INVITE_BUTTON_KEY));
  31. dispatch(beginAddPeople());
  32. }, [ dispatch, notifyMode ]);
  33. return (
  34. <Button
  35. accessibilityLabel = { t('participantsPane.actions.invite') }
  36. fullWidth = { true }
  37. icon = { IconAddUser }
  38. labelKey = { 'participantsPane.actions.invite' }
  39. onClick = { onInvite }
  40. type = { BUTTON_TYPES.PRIMARY } />
  41. );
  42. };