@redocly/theme
Version:
Shared UI components lib
44 lines • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useReportDialog = useReportDialog;
const react_1 = require("react");
const use_theme_hooks_1 = require("../use-theme-hooks");
const use_theme_config_1 = require("../use-theme-config");
function useReportDialog() {
const { codeSnippet: { report = {} } = {} } = (0, use_theme_config_1.useThemeConfig)();
const [isReportDialogShown, setIsReportDialogShown] = (0, react_1.useState)(false);
const { tooltipText, buttonText, label } = report;
const { useTranslate, useSubmitFeedback } = (0, use_theme_hooks_1.useThemeHooks)();
const { translate } = useTranslate();
const { submitFeedback } = useSubmitFeedback();
const showReportDialog = () => {
setIsReportDialogShown(true);
};
const hideReportDialog = () => {
setTimeout(function () {
setIsReportDialogShown(false);
}, 3000);
};
const closeReportDialog = () => {
setIsReportDialogShown(false);
};
const reportButtonProps = {
onClick: showReportDialog,
buttonText: buttonText || translate('codeSnippet.report.buttonText', 'Report'),
tooltip: tooltipText || translate('codeSnippet.report.tooltipText', 'Report a problem'),
hide: (report === null || report === void 0 ? void 0 : report.hide) === true,
};
const reportDialogProps = {
settings: {
label: label || translate('codeSnippet.report.label', 'What is wrong with this code?'),
},
onSubmit: hideReportDialog,
onCancel: closeReportDialog,
submitFeedback,
};
return {
reportDialog: { visible: isReportDialogShown, props: reportDialogProps },
reportButton: { props: reportButtonProps },
};
}
//# sourceMappingURL=use-report-dialog.js.map