UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

51 lines 2.87 kB
import { __assign, __extends } from "tslib"; import * as React from 'react'; import FeedbackButton from './FeedbackButton'; import FeedbackCollector, { FeedbackFlag } from '@atlaskit/feedback-collector'; import { FlagGroup } from '@atlaskit/flag'; import { injectFeatures } from '../FeaturesProvider'; var EMBEDDABLE_KEY = '85dc6027-c074-4800-ba54-4ecb844b29f8'; var REQUEST_TYPE_ID = '182'; var FEEDBACK_CONTEXT_CF = 'customfield_10047'; export function withFeedbackButton(WrappedComponent) { var WithFeedbackButton = /** @class */ (function (_super) { __extends(WithFeedbackButton, _super); function WithFeedbackButton() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = { isOpen: false, displayFlag: false, }; _this.open = function () { return _this.setState({ isOpen: true }); }; _this.close = function () { _this.setState({ isOpen: false }); }; _this.displayFlag = function () { return _this.setState({ displayFlag: true }); }; _this.hideFlag = function () { return _this.setState({ displayFlag: false }); }; return _this; } WithFeedbackButton.prototype.renderFeedbackButton = function () { return React.createElement(FeedbackButton, { onClick: this.open }); }; WithFeedbackButton.prototype.render = function () { var _a = this.state, isOpen = _a.isOpen, displayFlag = _a.displayFlag; var _b = this.props, name = _b.name, email = _b.email, _c = _b.features.abTest, experimentId = _c.experimentId, abTestId = _c.abTestId; var feedbackContext = "experimentId: " + experimentId + ", abTestId: " + abTestId; return (React.createElement(React.Fragment, null, React.createElement(WrappedComponent, __assign({}, this.props, { inputControls: this.renderFeedbackButton() })), isOpen && (React.createElement(FeedbackCollector, { onClose: this.close, onSubmit: this.displayFlag, email: email, name: name, requestTypeId: REQUEST_TYPE_ID, embeddableKey: EMBEDDABLE_KEY, additionalFields: [ { id: FEEDBACK_CONTEXT_CF, value: feedbackContext, }, ] })), displayFlag && (React.createElement(FlagGroup, { onDismissed: this.hideFlag }, React.createElement(FeedbackFlag, null))))); }; WithFeedbackButton.displayName = "WithFeedbackButton(" + (WrappedComponent.displayName || WrappedComponent.name) + ")"; return WithFeedbackButton; }(React.Component)); return injectFeatures(WithFeedbackButton); } //# sourceMappingURL=withFeedbackButton.js.map