fomantic-ui-react
Version:
Fomantic-UI React -- A React Component Library.
108 lines (96 loc) • 4.3 kB
JavaScript
/**
* fomantic-ui-react v0.0.1-alpha.10
* (c) 2022 FireLoong <fireloong@foxmail.com>
* @license MIT
*/
import { _ as _defineProperty, a as _objectWithoutProperties } from '../_chunks/dep-9f1126c1.js';
import { _ as _slicedToArray } from '../_chunks/dep-dc9b74a1.js';
import React, { useState, useRef, useEffect } from 'react';
import { createPortal } from 'react-dom';
import classNames from 'classnames';
import { useCss, useClickAway } from 'react-use';
import { Button } from '../button/index.js';
import { Dimmer } from '../dimmer/index.js';
import '../button/Button.js';
import '../_util/forwardRefWithStatics.js';
import 'hoist-non-react-statics';
import '../icon/index.js';
import '../icon/Icon.js';
import './style/css.js';
import '../icon/type.js';
import '../button/ButtonContent.js';
import '../button/type.js';
import '../dimmer/Dimmer.js';
import '../transition/index.js';
import '../transition/Transition.js';
import 'lodash';
import '../transition/type.js';
import '../dimmer/DimmerDimmable.js';
import '../dimmer/type.js';
var _excluded = ["as", "className", "active", "onClose", "children"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
var Modal = function Modal(_ref) {
var _ref$as = _ref.as,
as = _ref$as === void 0 ? "div" : _ref$as,
className = _ref.className,
active = _ref.active,
onClose = _ref.onClose,
children = _ref.children,
props = _objectWithoutProperties(_ref, _excluded);
var _useState = useState(active),
_useState2 = _slicedToArray(_useState, 2),
isActive = _useState2[0],
setIsActive = _useState2[1];
var ref = useRef(null);
var overflow = useCss({
overflow: "hidden"
});
useEffect(function () {
setIsActive(active);
}, [active]);
useEffect(function () {
if (isActive) {
document.body.classList.add(overflow);
} else {
document.body.classList.remove(overflow);
}
}, [isActive]);
useClickAway(ref, function () {
setIsActive(false);
onClose === null || onClose === void 0 ? void 0 : onClose();
});
if (!as) {
as = "div";
}
return /*#__PURE__*/createPortal( /* @__PURE__ */React.createElement(Dimmer, _objectSpread({
as: as,
className: classNames("modals", "page"),
active: isActive
}, props), /* @__PURE__ */React.createElement("div", {
ref: ref,
className: classNames("ui", "modal", "active")
}, /* @__PURE__ */React.createElement("div", {
className: "header"
}, "Select a Photo"), /* @__PURE__ */React.createElement("div", {
className: "image content"
}, /* @__PURE__ */React.createElement("div", {
className: "ui medium image"
}, /* @__PURE__ */React.createElement("img", {
src: "/images/avatar/large/rachel.png"
})), /* @__PURE__ */React.createElement("div", {
className: "description"
}, /* @__PURE__ */React.createElement("div", {
className: "ui header"
}, "Default Profile Image"), /* @__PURE__ */React.createElement("p", null, "We've found the following gravatar image associated with your e-mail address."), /* @__PURE__ */React.createElement("p", null, "Is it okay to use this photo?"))), /* @__PURE__ */React.createElement("div", {
className: "actions"
}, /* @__PURE__ */React.createElement(Button, {
content: "Nope"
}), /* @__PURE__ */React.createElement(Button, {
icon: "checkmark",
content: "Yep, that's me"
})))), document.body);
};
Modal.displayName = "Modal";
export { Modal as default };
//# sourceMappingURL=Modal.js.map