83 lines
2.5 KiB
TypeScript
83 lines
2.5 KiB
TypeScript
import { FileCodeIcon, XIcon } from "lucide-react"
|
|
|
|
import {
|
|
Attachment,
|
|
AttachmentAction,
|
|
AttachmentActions,
|
|
AttachmentContent,
|
|
AttachmentDescription,
|
|
AttachmentGroup,
|
|
AttachmentMedia,
|
|
AttachmentTitle,
|
|
} from "@/styles/radix-rhea/ui/attachment"
|
|
import { Spinner } from "@/styles/radix-rhea/ui/spinner"
|
|
|
|
const images = [
|
|
{
|
|
name: "workspace.png",
|
|
meta: "PNG · 820 KB",
|
|
src: "https://images.unsplash.com/photo-1497366754035-f200968a6e72?w=900&auto=format&fit=crop&q=80",
|
|
alt: "Workspace",
|
|
},
|
|
{
|
|
name: "desk-reference.jpg",
|
|
meta: "JPG · 1.1 MB",
|
|
src: "https://images.unsplash.com/photo-1497215728101-856f4ea42174?w=900&auto=format&fit=crop&q=80",
|
|
alt: "Desk",
|
|
},
|
|
{
|
|
name: "office-reference.jpg",
|
|
meta: "JPG · 940 KB",
|
|
src: "https://images.unsplash.com/photo-1497366811353-6870744d04b2?w=900&auto=format&fit=crop&q=80",
|
|
alt: "Office",
|
|
},
|
|
]
|
|
|
|
export function AttachmentDemo() {
|
|
return (
|
|
<div className="mx-auto flex w-full max-w-sm flex-col gap-3 py-12">
|
|
<AttachmentGroup>
|
|
{images.map((image) => (
|
|
<Attachment key={image.name} orientation="vertical">
|
|
<AttachmentMedia variant="image">
|
|
<img src={image.src} alt={image.alt} />
|
|
</AttachmentMedia>
|
|
<AttachmentContent>
|
|
<AttachmentTitle>{image.name}</AttachmentTitle>
|
|
<AttachmentDescription>{image.meta}</AttachmentDescription>
|
|
</AttachmentContent>
|
|
</Attachment>
|
|
))}
|
|
</AttachmentGroup>
|
|
<Attachment state="uploading" className="w-full">
|
|
<AttachmentMedia>
|
|
<Spinner />
|
|
</AttachmentMedia>
|
|
<AttachmentContent>
|
|
<AttachmentTitle>sales-dashboard.pdf</AttachmentTitle>
|
|
<AttachmentDescription>Uploading · 64%</AttachmentDescription>
|
|
</AttachmentContent>
|
|
<AttachmentActions>
|
|
<AttachmentAction aria-label="Cancel upload">
|
|
<XIcon />
|
|
</AttachmentAction>
|
|
</AttachmentActions>
|
|
</Attachment>
|
|
<Attachment className="w-full">
|
|
<AttachmentMedia>
|
|
<FileCodeIcon />
|
|
</AttachmentMedia>
|
|
<AttachmentContent>
|
|
<AttachmentTitle>message-renderer.tsx</AttachmentTitle>
|
|
<AttachmentDescription>TypeScript · 12 KB</AttachmentDescription>
|
|
</AttachmentContent>
|
|
<AttachmentActions>
|
|
<AttachmentAction aria-label="Remove message-renderer.tsx">
|
|
<XIcon />
|
|
</AttachmentAction>
|
|
</AttachmentActions>
|
|
</Attachment>
|
|
</div>
|
|
)
|
|
}
|