feat: unify detail side sheets

This commit is contained in:
lingniu
2026-07-19 05:38:17 +08:00
parent 7eca5ae352
commit 63b50732cb
15 changed files with 273 additions and 42 deletions

View File

@@ -17,15 +17,18 @@ export type WorkspaceSideSheetSummaryItem = {
tone?: 'neutral' | 'primary' | 'success' | 'warning' | 'danger';
};
type WorkspaceSideSheetProps = {
export type WorkspaceSideSheetBadgeColor = 'blue' | 'green' | 'orange' | 'red' | 'grey';
export type WorkspaceSideSheetProps = {
className?: string;
variant?: 'config' | 'detail';
visible: boolean;
ariaLabel: string;
closeLabel?: string;
title: ReactNode;
description: ReactNode;
badge?: ReactNode;
badgeColor?: 'blue' | 'green' | 'orange' | 'red' | 'grey';
badgeColor?: WorkspaceSideSheetBadgeColor;
placement?: 'left' | 'right' | 'top' | 'bottom';
width?: string | number;
height?: string | number;
@@ -39,6 +42,7 @@ type WorkspaceSideSheetProps = {
export function WorkspaceSideSheet({
className = '',
variant = 'config',
visible,
ariaLabel,
closeLabel = `关闭${ariaLabel}`,
@@ -57,7 +61,7 @@ export function WorkspaceSideSheet({
children
}: WorkspaceSideSheetProps) {
const sheetId = useId();
const sheetClassName = ['v2-workspace-config-sidesheet', className].filter(Boolean).join(' ');
const sheetClassName = [`v2-workspace-${variant}-sidesheet`, className].filter(Boolean).join(' ');
const hasFooter = Boolean(footerNote || secondaryActions.length || primaryAction);
useLayoutEffect(() => {