Files
copilot-toolbox-sdfdsfds/node_modules/@ant-design/pro-layout/es/components/AppsLogoComponents/index.js
2026-01-16 01:51:36 +00:00

114 lines
4.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { openVisibleCompatible } from '@ant-design/pro-utils';
import { Popover } from 'antd';
import classNames from 'classnames';
import React, { useMemo, useState } from 'react';
import { AppsLogo } from "./AppsLogo";
import { DefaultContent } from "./DefaultContent";
import { SimpleContent } from "./SimpleContent";
import { useStyle } from "./style/index";
import { jsx as _jsx } from "react/jsx-runtime";
import { Fragment as _Fragment } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
/**
* 默认渲染logo的方式如果是个string用img。否则直接返回
*
* @param logo
* @returns
*/
export var defaultRenderLogo = function defaultRenderLogo(logo) {
if (typeof logo === 'string') {
return /*#__PURE__*/_jsx("img", {
width: "auto",
height: 22,
src: logo,
alt: "logo"
});
}
if (typeof logo === 'function') {
return logo();
}
return logo;
};
/**
* 相关品牌额icon 列表。用于展示相关的品牌
*
* @param props
* @returns
*/
export var AppsLogoComponents = function AppsLogoComponents(props) {
var _props$appList;
var appList = props.appList,
appListRender = props.appListRender,
_props$prefixCls = props.prefixCls,
prefixCls = _props$prefixCls === void 0 ? 'ant-pro' : _props$prefixCls,
itemClick = props.onItemClick;
var ref = React.useRef(null);
var popoverRef = React.useRef(null);
var baseClassName = "".concat(prefixCls, "-layout-apps");
var _useStyle = useStyle(baseClassName),
wrapSSR = _useStyle.wrapSSR,
hashId = _useStyle.hashId;
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
open = _useState2[0],
setOpen = _useState2[1];
var cloneItemClick = function cloneItemClick(app) {
itemClick === null || itemClick === void 0 || itemClick(app, popoverRef);
};
var defaultDomContent = useMemo(function () {
var isSimple = appList === null || appList === void 0 ? void 0 : appList.some(function (app) {
return !(app !== null && app !== void 0 && app.desc);
});
if (isSimple) {
return /*#__PURE__*/_jsx(SimpleContent, {
hashId: hashId,
appList: appList,
itemClick: itemClick ? cloneItemClick : undefined,
baseClassName: "".concat(baseClassName, "-simple")
});
}
return /*#__PURE__*/_jsx(DefaultContent, {
hashId: hashId,
appList: appList,
itemClick: itemClick ? cloneItemClick : undefined,
baseClassName: "".concat(baseClassName, "-default")
});
}, [appList, baseClassName, hashId]);
if (!(props !== null && props !== void 0 && (_props$appList = props.appList) !== null && _props$appList !== void 0 && _props$appList.length)) return null;
var popoverContent = appListRender ? appListRender(props === null || props === void 0 ? void 0 : props.appList, defaultDomContent) : defaultDomContent;
var popoverOpenProps = openVisibleCompatible(undefined, function (openChange) {
return setOpen(openChange);
});
return wrapSSR( /*#__PURE__*/_jsxs(_Fragment, {
children: [/*#__PURE__*/_jsx("div", {
ref: ref,
onClick: function onClick(e) {
e.stopPropagation();
e.preventDefault();
}
}), /*#__PURE__*/_jsx(Popover, _objectSpread(_objectSpread({
placement: "bottomRight",
trigger: ['click'],
zIndex: 9999,
arrow: false
}, popoverOpenProps), {}, {
overlayClassName: "".concat(baseClassName, "-popover ").concat(hashId).trim(),
content: popoverContent,
getPopupContainer: function getPopupContainer() {
return ref.current || document.body;
},
children: /*#__PURE__*/_jsx("span", {
ref: popoverRef,
onClick: function onClick(e) {
e.stopPropagation();
},
className: classNames("".concat(baseClassName, "-icon"), hashId, _defineProperty({}, "".concat(baseClassName, "-icon-active"), open)),
children: /*#__PURE__*/_jsx(AppsLogo, {})
})
}))]
}));
};