@kiwicom/smart-faq
Version: 
75 lines (62 loc) • 1.89 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;
var _reactRelay = require("react-relay");
var _idx = _interopRequireDefault(require("idx"));
var _environment = _interopRequireDefault(require("../relay/environment"));
var _trackers = require("../helpers/analytics/trackers");
// @flow
var mutation = function mutation() {
  var node = require("./__generated__/CreateCommentMutation.graphql");
  if (node.hash && node.hash !== "d05a63fac00e17aa31de6f03373c0c24") {
    console.error("The definition of 'CreateCommentMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data.");
  }
  return require("./__generated__/CreateCommentMutation.graphql");
};
var _default = function _default(articleId
/*: string*/
, type
/*: string*/
, comment
/*: string*/
, callback
/*: () => void*/
, commentLimitReachedCallback
/*: () => void*/
, errorCallback
/*: () => void*/
) {
  var variables = {
    articleId: articleId,
    type: type,
    comment: comment
  };
  (0, _reactRelay.commitMutation)((0, _environment.default)(), {
    mutation: mutation,
    variables: variables,
    onCompleted: function onCompleted(response, errors) {
      if (!errors) {
        callback();
        return;
      }
      var isCommentLimitReached = (0, _idx.default)(errors, function (_) {
        return _[0].extensions.proxy.statusCode;
      }) === '429';
      if (isCommentLimitReached) {
        (0, _trackers.simpleTracker)('smartFAQCategories', {
          action: 'commentLimitReached'
        });
        commentLimitReachedCallback();
      } else {
        errorCallback();
      }
    },
    onError: function onError() {
      errorCallback();
    }
  });
};
exports.default = _default;