insomnia/app/ui/components/dropdowns/PreviewModeDropdown.js
Gregory Schier 2b6f02f6ca Migrate persistent redux stores to DB models (#70)
* Removed RequestGroupMeta reducer

* Converted rest of reducers to DB models
2016-11-30 17:50:59 -08:00

46 lines
1.4 KiB
JavaScript

import React, {PureComponent, PropTypes} from 'react';
import {Dropdown, DropdownDivider, DropdownButton, DropdownItem} from '../base/dropdown';
import {PREVIEW_MODES, getPreviewModeName} from '../../../common/constants';
import {trackEvent} from '../../../analytics/index';
class PreviewModeDropdown extends PureComponent {
_handleClick = previewMode => {
this.props.updatePreviewMode(previewMode);
trackEvent('Response', 'Preview Mode Change', previewMode);
};
render () {
const {download, previewMode} = this.props;
return (
<Dropdown>
<DropdownButton className="tall">
<i className="fa fa-caret-down"></i>
</DropdownButton>
<DropdownDivider name="Preview Mode"/>
{PREVIEW_MODES.map(mode => (
<DropdownItem key={mode} onClick={this._handleClick} value={mode}>
{previewMode === mode ? <i className="fa fa-check"/> : <i className="fa fa-empty"/>}
{getPreviewModeName(mode)}
</DropdownItem>
))}
<DropdownDivider name="Actions"/>
<DropdownItem onClick={download}>
<i className="fa fa-save"></i>
Save to File
</DropdownItem>
</Dropdown>
)
}
}
PreviewModeDropdown.propTypes = {
// Functions
updatePreviewMode: PropTypes.func.isRequired,
download: PropTypes.func.isRequired,
// Required
previewMode: PropTypes.string.isRequired
};
export default PreviewModeDropdown;