code-block-expand-demo
delta-components/code-block-expand-demoFreeExample
delta-components publishes no description for this item.
Install it
npx shadcn@latest add https://deltacomponents.dev/r/code-block-expand-demo.jsonSource
1"use client"23import * as React from "react"45import { CodeBlock } from "@/components/ui/code-block"67const longCode = `import * as React from "react"8import { useEffect, useState, useCallback, useMemo } from "react"9import { cn } from "@/lib/utils"1011interface DataItem {12 id: string13 name: string14 description: string15 status: "active" | "inactive" | "pending"16 createdAt: Date17 updatedAt: Date18 metadata: Record<string, unknown>19}2021interface DataTableProps {22 data: DataItem[]23 onSelect?: (item: DataItem) => void24 onDelete?: (id: string) => void25 onEdit?: (item: DataItem) => void26 className?: string27 loading?: boolean28 error?: Error | null29}3031export function DataTable({32 data,33 onSelect,34 onDelete,35 onEdit,36 className,37 loading = false,38 error = null,39}: DataTableProps) {40 const [selectedIds, setSelectedIds] = useState<Set<string>>(new Set())41 const [sortColumn, setSortColumn] = useState<keyof DataItem>("name")42 const [sortDirection, setSortDirection] = useState<"asc" | "desc">("asc")43 const [filterText, setFilterText] = useState("")4445 const filteredData = useMemo(() => {46 return data47 .filter((item) =>48 item.name.toLowerCase().includes(filterText.toLowerCase()) ||49 item.description.toLowerCase().includes(filterText.toLowerCase())50 )51 .sort((a, b) => {52 const aVal = a[sortColumn]53 const bVal = b[sortColumn]54 const modifier = sortDirection === "asc" ? 1 : -155 if (aVal < bVal) return -1 * modifier56 if (aVal > bVal) return 1 * modifier57 return 058 })59 }, [data, filterText, sortColumn, sortDirection])6061 const handleSelectAll = useCallback(() => {62 if (selectedIds.size === filteredData.length) {63 setSelectedIds(new Set())64 } else {65 setSelectedIds(new Set(filteredData.map((item) => item.id)))66 }67 }, [filteredData, selectedIds.size])6869 const handleSelectItem = useCallback((id: string) => {70 setSelectedIds((prev) => {71 const next = new Set(prev)72 if (next.has(id)) {73 next.delete(id)74 } else {75 next.add(id)76 }77 return next78 })79 }, [])8081 if (loading) {82 return <div className="flex items-center justify-center p-8">Loading...</div>83 }8485 if (error) {86 return <div className="text-red-500 p-4">Error: {error.message}</div>87 }8889 return (90 <div className={cn("rounded-lg border", className)}>91 <div className="p-4 border-b">92 <input93 type="text"94// … truncated
What it pulls in
Other registry items
Files it writes
More from delta-components
All 93 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| admonition-actions-demoadmonition-actions-demo | delta-components | Examples | Free | no deps | |
| admonition-collapsible-demoadmonition-collapsible-demo | delta-components | Examples | Free | no deps | |
| admonition-custom-icon-demoadmonition-custom-icon-demo | delta-components | Examples | Free | no deps | |
| admonition-demoadmonition-demo | delta-components | Examples | Free | no deps | |
| admonition-demo-interactiveadmonition-demo-interactive | delta-components | Examples | Free | no deps | |
| admonition-dismissible-demoadmonition-dismissible-demo | delta-components | Examples | Free | no deps | |
| cambio-image-close-button-democambio-image-close-button-demo | delta-components | Examples | Free | no deps | |
| cambio-image-democambio-image-demo | delta-components | Examples | Free | no deps |
