UNPKG

@highloop/feedback-react

Version:

163 lines (152 loc) 5.16 kB
'use strict'; 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