// @flow
import Droplist, { Item, Group } from '@atlaskit/droplist';
import HelpIcon from '@atlaskit/icon/glyph/question-circle';
import React, { Component } from 'react';
import { withTranslation } from 'react-i18next';
import config from '../../config';
import { openExternalLink } from '../../utils';
import { version } from '../../../../package.json';
type State = {
/**
* Whether the droplist is open or not.
*/
droplistOpen: boolean
};
/**
* Help button for Navigation Bar.
*/
class HelpButton extends Component<*, State> {
/**
* Initializes a new {@code HelpButton} instance.
*
* @inheritdoc
*/
constructor() {
super();
this.state = {
droplistOpen: false
};
this._onAboutClick = openExternalLink.bind(undefined, config.aboutURL);
this._onSourceClick = openExternalLink.bind(undefined, config.sourceURL);
this._onIconClick = this._onIconClick.bind(this);
this._onOpenChange = this._onOpenChange.bind(this);
this._onPrivacyClick
= openExternalLink.bind(undefined, config.privacyPolicyURL);
this._onTermsClick
= openExternalLink.bind(undefined, config.termsAndConditionsURL);
this._onSendFeedbackClick
= openExternalLink.bind(undefined, config.feedbackURL);
}
_onAboutClick: (*) => void;
_onSourceClick: (*) => void;
_onIconClick: (*) => void;
/**
* Toggles the droplist.
*
* @returns {void}
*/
_onIconClick() {
this.setState({
droplistOpen: !this.state.droplistOpen
});
}
_onOpenChange: (*) => void;
/**
* Closes droplist when clicked outside.
*
* @returns {void}
*/
_onOpenChange() {
this.setState({
droplistOpen: false
});
}
_onPrivacyClick: (*) => void;
_onTermsClick: (*) => void;
_onSendFeedbackClick: (*) => void;
/**
* Render function of component.
*
* @returns {ReactElement}
*/
render() {
const { t } = this.props;
return (
}>
-
{ t('termsLink') }
-
{ t('privacyLink') }
-
{ t('sendFeedbackLink') }
-
{ t('aboutLink') }
-
{ t('sourceLink') }
-
{ t('versionLabel', { version }) }
);
}
}
export default withTranslation()(HelpButton);