Empty
Playground
TSX
'use client';
import {
Empty,
EmptyHeader,
EmptyMedia,
Icon,
EmptyTitle,
EmptyDescription,
EmptyContent,
Button,
type EmptySize,
} from '@mbsw/ui';
import { FolderOpen } from 'lucide-react';
export default function Demo() {
const settings = {
"showIcon": true,
"showTitle": true,
"showDescription": true,
"showAction": true,
"title": "프로젝트를 추가해 보세요.",
"description": "모든 작업을 한눈에 확인하고 빠르게 정리할 수 있습니다.",
"actionLabel": "프로젝트 추가",
"size": "md"
};
const mediaSize = { sm: 'xl', md: '2xl', lg: '4xl' } as const;
return (
<Empty size={settings.size as EmptySize}>
<EmptyHeader>
{settings.showIcon && (
<EmptyMedia style={{ color: 'var(--riido-foreground-empty)' }}>
<Icon
icon={FolderOpen}
size={mediaSize[settings.size as EmptySize]}
decorative
/>
</EmptyMedia>
)}
{settings.showTitle && <EmptyTitle>{settings.title}</EmptyTitle>}
{settings.showDescription && (
<EmptyDescription style={{ whiteSpace: 'pre-wrap' }}>
{settings.description}
</EmptyDescription>
)}
</EmptyHeader>
{settings.showAction && (
<EmptyContent>
<Button size={settings.size as EmptySize} tone="secondary">
{settings.actionLabel}
</Button>
</EmptyContent>
)}
</Empty>
);
}
Usage
Header, Title, Description과 Content의 다음 동작을 조합합니다. 오류와 실제 빈 상태를 구분합니다.
TSX
'use client';
import { Empty, EmptyHeader, EmptyTitle, EmptyDescription } from '@mbsw/ui';
export default function Example() {
return (
<Empty size="md">
<EmptyHeader>
<EmptyTitle>{"프로젝트를 추가해 보세요."}</EmptyTitle>
<EmptyDescription>{"모든 작업을 한눈에 확인하고 빠르게 정리할 수 있습니다."}</EmptyDescription>
</EmptyHeader>
</Empty>
);
}
Playground의 Code 탭에서 현재 설정과 동작이 포함된 예제 전체를 복사할 수 있습니다. 공통 CSS 설치는 설치하기를 확인하세요.