@highloop/feedback-react
Version:
163 lines (152 loc) • 5.16 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var feedback = require('@highloop/feedback');
var React = require('react');
var React__default = _interopDefault(React);
var FeedbackButton = function FeedbackButton(props) {
var ref = React.useRef();
var instanceRef = React.useRef();
React.useEffect(function () {
if (!ref.current || typeof window == 'undefined') return;
feedback.createPopoverWidget(props.id, ref.current, {
theme: props.theme,
text: props.text,
meta: props.meta,
position: props.position,
closeOnOutsideClick: props.closeOnOutsideClick,
expanded: props.expanded
}).then(function (instance) {
instanceRef.current = instance;
})["catch"](function (err) {
return console.warn('[highloop-feedback]: Could not create widget', err);
});
return function () {
if (!instanceRef.current) return;
instanceRef.current.destroy();
};
}, [props.id]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setTheme(props.theme);
}, [props.theme]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setMeta(props.meta);
}, [props.meta]);
var buttonProps = React.useMemo(function () {
var buttonProps = Object.assign({
children: 'Feedback',
style: !props.className && !props.style ? {
color: 'white',
background: 'black',
height: 34,
border: 'none',
borderRadius: 8,
padding: '0px 14px',
fontSize: 14,
fontWeight: 500
} : {}
}, props);
delete buttonProps.id;
delete buttonProps.resetOnSubmit;
delete buttonProps.theme;
delete buttonProps.text;
delete buttonProps.meta;
delete buttonProps.position;
delete buttonProps.expanded;
delete buttonProps.closeOnOutsideClick;
return buttonProps;
}, [props]);
return React__default.createElement("button", Object.assign({}, buttonProps, {
ref: ref
}));
};
var FeedbackWidget = function FeedbackWidget(_ref) {
var id = _ref.id,
resetOnSubmit = _ref.resetOnSubmit,
theme = _ref.theme,
text = _ref.text,
meta = _ref.meta,
expanded = _ref.expanded;
var ref = React.useRef();
var instanceRef = React.useRef();
React.useEffect(function () {
if (!ref.current || typeof window == 'undefined') return;
feedback.createInlineWidget(id, ref.current, {
meta: meta,
resetOnSubmit: resetOnSubmit,
theme: theme,
text: text,
expanded: expanded
}).then(function (instance) {
instanceRef.current = instance;
})["catch"](function (err) {
return console.warn('[highloop-feedback]: Could not create widget', err);
});
return function () {
if (!instanceRef.current) return;
instanceRef.current.destroy();
};
}, [id]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setTheme(theme);
}, [theme]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setMeta(meta);
}, [meta]);
return React__default.createElement("div", {
ref: ref
});
};
var useFeedbackDialog = function useFeedbackDialog(id, opts) {
var instanceRef = React.useRef();
React.useEffect(function () {
feedback.createDialogWidget(id, opts).then(function (instance) {
instanceRef.current = instance;
})["catch"](function (err) {
return console.warn('[highloop-feedback]: Could not create widget', err);
});
return function () {
if (!instanceRef.current) return;
instanceRef.current.destroy();
};
}, [id]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setTheme(opts == null ? void 0 : opts.theme);
}, [opts == null ? void 0 : opts.theme]);
React.useEffect(function () {
if (!instanceRef.current) return;
instanceRef.current.setMeta(opts == null ? void 0 : opts.meta);
}, [opts == null ? void 0 : opts.meta]);
return {
open: function open() {
var _instanceRef$current;
return (_instanceRef$current = instanceRef.current) == null ? void 0 : _instanceRef$current.open();
},
close: function close() {
var _instanceRef$current2;
return (_instanceRef$current2 = instanceRef.current) == null ? void 0 : _instanceRef$current2.close();
},
toggle: function toggle() {
var _instanceRef$current3;
return (_instanceRef$current3 = instanceRef.current) == null ? void 0 : _instanceRef$current3.toggle();
}
};
};
Object.keys(feedback).forEach(function (k) {
if (k !== 'default') Object.defineProperty(exports, k, {
enumerable: true,
get: function () {
return feedback[k];
}
});
});
exports.FeedbackButton = FeedbackButton;
exports.FeedbackWidget = FeedbackWidget;
exports.default = FeedbackButton;
exports.useFeedbackDialog = useFeedbackDialog;
//# sourceMappingURL=feedback-react.cjs.development.js.map