@mopinion/survey
Version:
Collect customer feedback with the Mopinion survey library
58 lines (57 loc) • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = useIntegrations;
var _hooks = require("preact/hooks");
var _ConfigStore = require("../stores/ConfigStore");
var _FormStore = require("../stores/FormStore");
var _Track = _interopRequireDefault(require("../utils/Track"));
var _useFormCompletionPercentage = _interopRequireDefault(require("./useFormCompletionPercentage"));
var _useFeedback = _interopRequireDefault(require("./useFeedback"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function useIntegrations() {
var _useConfigStore = (0, _ConfigStore.useConfigStore)(),
properties = _useConfigStore.properties,
pageMap = _useConfigStore.pageMap;
var _useFormStore = (0, _FormStore.useFormStore)(),
activePage = _useFormStore.activePage,
formType = _useFormStore.formType;
var _useFormProps = (0, _ConfigStore.useFormProps)(),
disablePost = _useFormProps.disablePost,
formKey = _useFormProps.formKey,
triggerMethod = _useFormProps.triggerMethod,
domain = _useFormProps.domain,
metricsDomain = _useFormProps.metricsDomain;
var formCompletionPercentage = (0, _useFormCompletionPercentage["default"])();
var feedback = (0, _useFeedback["default"])({
addExtraData: true,
noOpenOrPIIFeedback: true,
excludeScreenShotDom: true
});
var integrations = (0, _hooks.useMemo)(function () {
var _properties$advanced;
return new _Track["default"]({
advanced: (_properties$advanced = properties === null || properties === void 0 ? void 0 : properties.advanced) !== null && _properties$advanced !== void 0 ? _properties$advanced : {},
disablePost: disablePost,
formKey: formKey,
formName: properties.name,
metricsDomain: metricsDomain
});
}, [properties === null || properties === void 0 ? void 0 : properties.advanced, disablePost, formKey, properties.name, metricsDomain]);
integrations.setEventProps({
trigger_method: triggerMethod,
form_completion_percentage: formCompletionPercentage,
active_page: activePage,
page_count: Object.keys(pageMap).pop(),
form_type: formType,
subdomain: domain,
organisation_id: properties.organisation_id,
project_id: properties.project_id
}).setFeedback(feedback);
return {
sendEvent: integrations.send,
sendFeedback: integrations.sendFeedback
};
}
//# sourceMappingURL=useIntegrations.js.map