UNPKG

@redocly/theme

Version:

Shared UI components lib

44 lines 1.83 kB
"use strict"; 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