071faa482c
纳入 AGC Cargo workspace 的统一 rustfmt 检查与格式化入口 完成项目 TypeScript/Prettier 与 Rust 全量格式化 修复 Pingora expected executable 门禁的空白敏感误报 同步开发运维文档与 AGC skill pack 格式化忽略规则
60 lines
1.5 KiB
TypeScript
60 lines
1.5 KiB
TypeScript
import type { ReactNode } from 'react';
|
|
|
|
import { UnifiedModal } from './UnifiedModal';
|
|
|
|
type PlatformUtilityInfoModalProps = {
|
|
open: boolean;
|
|
title: string;
|
|
onClose: () => void;
|
|
children: ReactNode;
|
|
footer?: ReactNode;
|
|
platformTheme?: 'light' | 'dark';
|
|
overlayClassName?: string;
|
|
panelClassName?: string;
|
|
bodyClassName?: string;
|
|
footerClassName?: string;
|
|
};
|
|
|
|
function joinClassNames(
|
|
...classNames: Array<string | null | undefined | false>
|
|
) {
|
|
return classNames.filter(Boolean).join(' ');
|
|
}
|
|
|
|
/**
|
|
* 工具信息类弹窗统一走平台主题 overlay + 白底 panel 壳层。
|
|
* 这里只收口通用窗口骨架,字段内容、分享渠道和复制按钮仍由业务组件自己渲染。
|
|
*/
|
|
export function PlatformUtilityInfoModal({
|
|
open,
|
|
title,
|
|
onClose,
|
|
children,
|
|
footer,
|
|
platformTheme,
|
|
overlayClassName,
|
|
panelClassName,
|
|
bodyClassName,
|
|
footerClassName,
|
|
}: PlatformUtilityInfoModalProps) {
|
|
return (
|
|
<UnifiedModal
|
|
open={open}
|
|
title={title}
|
|
onClose={onClose}
|
|
size="sm"
|
|
portalTheme={platformTheme}
|
|
overlayClassName={joinClassNames('!items-center', overlayClassName)}
|
|
panelClassName={joinClassNames('platform-remap-surface', panelClassName)}
|
|
bodyClassName={joinClassNames(
|
|
'space-y-4 px-4 py-4 sm:px-5 sm:py-5',
|
|
bodyClassName,
|
|
)}
|
|
footer={footer}
|
|
footerClassName={joinClassNames('px-4 py-4 sm:px-5', footerClassName)}
|
|
>
|
|
{children}
|
|
</UnifiedModal>
|
|
);
|
|
}
|