Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

FeedbackButton.web.ts 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { connect } from 'react-redux';
  2. import { createToolbarEvent } from '../../analytics/AnalyticsEvents';
  3. import { sendAnalytics } from '../../analytics/functions';
  4. import { IReduxState } from '../../app/types';
  5. import { IJitsiConference } from '../../base/conference/reducer';
  6. import { translate } from '../../base/i18n/functions';
  7. import { IconFeedback } from '../../base/icons/svg';
  8. import AbstractButton, { IProps as AbstractButtonProps } from '../../base/toolbox/components/AbstractButton';
  9. import { openFeedbackDialog } from '../actions';
  10. /**
  11. * The type of the React {@code Component} props of {@link FeedbackButton}.
  12. */
  13. interface IProps extends AbstractButtonProps {
  14. /**
  15. * The {@code JitsiConference} for the current conference.
  16. */
  17. _conference?: IJitsiConference;
  18. }
  19. /**
  20. * Implementation of a button for opening feedback dialog.
  21. */
  22. class FeedbackButton extends AbstractButton<IProps> {
  23. accessibilityLabel = 'toolbar.accessibilityLabel.feedback';
  24. icon = IconFeedback;
  25. label = 'toolbar.feedback';
  26. tooltip = 'toolbar.feedback';
  27. /**
  28. * Handles clicking / pressing the button, and opens the appropriate dialog.
  29. *
  30. * @protected
  31. * @returns {void}
  32. */
  33. _handleClick() {
  34. const { _conference, dispatch } = this.props;
  35. sendAnalytics(createToolbarEvent('feedback'));
  36. dispatch(openFeedbackDialog(_conference));
  37. }
  38. }
  39. const mapStateToProps = (state: IReduxState) => {
  40. const { callStatsID } = state['features/base/config'];
  41. return {
  42. _conference: state['features/base/conference'].conference,
  43. visible: Boolean(callStatsID)
  44. };
  45. };
  46. export default translate(connect(mapStateToProps)(FeedbackButton));