UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

43 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var Button_1 = require("office-ui-fabric-react/lib/Button"); var Dialog_1 = require("office-ui-fabric-react/lib/Dialog"); var Panel_1 = require("office-ui-fabric-react/lib/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.useState(false), isPanelOpen = _a[0], setIsPanelOpen = _a[1]; var _b = React.useState(false), isDialogVisible = _b[0], setIsDialogVisible = _b[1]; var openPanel = react_hooks_1.useConstCallback(function () { return setIsPanelOpen(true); }); var dismissPanel = react_hooks_1.useConstCallback(function () { return setIsPanelOpen(false); }); var showDialog = react_hooks_1.useConstCallback(function () { return setIsDialogVisible(true); }); var hideDialog = react_hooks_1.useConstCallback(function () { return setIsDialogVisible(false); }); var hideDialogAndPanel = react_hooks_1.useConstCallback(function () { setIsPanelOpen(false); setIsDialogVisible(false); }); 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("span", null, explanation)), React.createElement(Dialog_1.Dialog, { hidden: !isDialogVisible, onDismiss: hideDialog, dialogContentProps: dialogContentProps, modalProps: dialogModalProps }, React.createElement(Dialog_1.DialogFooter, null, React.createElement(Button_1.PrimaryButton, { onClick: hideDialogAndPanel, text: "Yes" }), React.createElement(Button_1.DefaultButton, { onClick: hideDialog, text: "No" }))))); }; //# sourceMappingURL=Panel.LightDismissCustom.Example.js.map