import type { ReactNode } from 'react';
import { PlatformModalCloseButton } from '../common/PlatformModalCloseButton';
import { UnifiedModal } from '../common/UnifiedModal';
type PlatformProfileModalShellProps = {
title: string;
description?: ReactNode;
onClose: () => void;
children: ReactNode;
closeLabel?: string;
closeVariant?: 'profile' | 'profileCompact';
closeDisabled?: boolean;
showHeader?: boolean;
showCloseButton?: boolean;
size?: 'sm' | 'md';
zIndexClassName?: string;
panelClassName: string;
bodyClassName?: string;
descriptionClassName?: string;
};
type PlatformProfileSecondaryModalShellProps = {
title: string;
onClose: () => void;
children: ReactNode;
closeLabel?: string;
closeVariant?: 'floating' | 'floatingPlain';
closeIcon?: ReactNode;
closeButtonClassName?: string;
overlayTone?: 'default' | 'soft';
size?: 'sm' | 'md';
zIndexClassName?: string;
panelClassName: string;
contentClassName: string;
};
const PROFILE_MODAL_OVERLAY_CLASS =
'platform-modal-backdrop !items-center !justify-center !px-4 !py-6';
const PROFILE_MODAL_HEADER_CLASS = 'border-white/10 px-5 py-4';
const PROFILE_MODAL_TITLE_CLASS = 'text-base font-black';
const PROFILE_MODAL_DESCRIPTION_CLASS =
'mt-1 text-xs font-semibold text-[var(--platform-text-soft)]';
const PROFILE_SECONDARY_MODAL_OVERLAY_CLASS_BY_TONE = {
default: '!items-center !bg-black/48 !px-3 !py-5 !backdrop-blur-none',
soft: '!items-center !bg-black/42 !px-3 !py-5 !backdrop-blur-none',
} as const;
/**
* 个人中心标准弹窗壳层。
* 统一收口账户侧弹窗常用的 overlay、header 和 close button 配置。
*/
export function PlatformProfileModalShell({
title,
description,
onClose,
children,
closeLabel,
closeVariant = 'profile',
closeDisabled = false,
showHeader = true,
showCloseButton = true,
size = 'sm',
zIndexClassName = 'z-[80]',
panelClassName,
bodyClassName = 'px-5 py-5',
descriptionClassName = PROFILE_MODAL_DESCRIPTION_CLASS,
}: PlatformProfileModalShellProps) {
return (
{children}
);
}
/**
* 个人中心副弹层壳层。
* 用于“玩过 / 账单 / 邀请”这类白底浮层,统一收口 overlay、floating close 和 body 外壳。
*/
export function PlatformProfileSecondaryModalShell({
title,
onClose,
children,
closeLabel,
closeVariant = 'floating',
closeIcon = '×',
closeButtonClassName,
overlayTone = 'default',
size = 'sm',
zIndexClassName = 'z-[80]',
panelClassName,
contentClassName,
}: PlatformProfileSecondaryModalShellProps) {
return (
);
}