"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var Button_1 = require("office-ui-fabric-react/lib-commonjs/Button");
var Dialog_1 = require("office-ui-fabric-react/lib-commonjs/Dialog");
var Panel_1 = require("office-ui-fabric-react/lib-commonjs/Panel");
var react_hooks_1 = require("@uifabric/react-hooks");
var explanation = 'If this panel is closed using light dismiss (clicking outside the panel), a confirmation dialog will appear.';
var dialogContentProps = {
    type: Dialog_1.DialogType.normal,
    title: 'Are you sure you want to close the panel?',
};
var dialogModalProps = {
    isBlocking: true,
    styles: { main: { maxWidth: 450 } },
};
exports.PanelLightDismissCustomExample = function () {
    var _a = react_hooks_1.useBoolean(false), isPanelOpen = _a[0], _b = _a[1], openPanel = _b.setTrue, dismissPanel = _b.setFalse;
    var _c = react_hooks_1.useBoolean(false), isDialogVisible = _c[0], _d = _c[1], showDialog = _d.setTrue, hideDialog = _d.setFalse;
    var onHideDialog = React.useCallback(function (ev) {
        ev.preventDefault();
        hideDialog();
    }, [hideDialog]);
    var onHideDialogAndPanel = React.useCallback(function () {
        dismissPanel();
        hideDialog();
    }, [dismissPanel, hideDialog]);
    return (React.createElement("div", null,
        explanation,
        React.createElement("br", null),
        React.createElement("br", null),
        React.createElement(Button_1.DefaultButton, { text: "Open panel", onClick: openPanel }),
        React.createElement(Panel_1.Panel, { isOpen: isPanelOpen, isLightDismiss: true, 
            // Use this prop to do special handling *only* for light dismiss.
            // If you provide this, the normal onDismiss won't be called for light dismiss.
            onLightDismissClick: showDialog, onDismiss: dismissPanel, headerText: "Panel with custom light dismiss behavior", closeButtonAriaLabel: "Close" },
            React.createElement("p", null, explanation)),
        React.createElement(Dialog_1.Dialog, { hidden: !isDialogVisible, onDismiss: onHideDialog, dialogContentProps: dialogContentProps, modalProps: dialogModalProps },
            React.createElement(Dialog_1.DialogFooter, null,
                React.createElement(Button_1.PrimaryButton, { onClick: onHideDialogAndPanel, text: "Yes" }),
                React.createElement(Button_1.DefaultButton, { onClick: onHideDialog, text: "No" })))));
};
//# sourceMappingURL=Panel.LightDismissCustom.Example.js.map