BlockViewerToolbar() — ui Function Reference
Architecture documentation for the BlockViewerToolbar() function in block-viewer.tsx from the ui codebase.
Entity Profile
Dependency Diagram
graph TD b46f1295_2e04_930f_58cd_6e7540fb38f1["BlockViewerToolbar()"] c3ac54aa_58a5_8188_b5f8_014a382dcef3["block-viewer.tsx"] b46f1295_2e04_930f_58cd_6e7540fb38f1 -->|defined in| c3ac54aa_58a5_8188_b5f8_014a382dcef3 490f6bb9_b906_4b05_666d_dac1a32689b9["useBlockViewer()"] b46f1295_2e04_930f_58cd_6e7540fb38f1 -->|calls| 490f6bb9_b906_4b05_666d_dac1a32689b9 style b46f1295_2e04_930f_58cd_6e7540fb38f1 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/v4/components/block-viewer.tsx lines 146–238
function BlockViewerToolbar({ styleName }: { styleName: Style["name"] }) {
const { setView, view, item, resizablePanelRef, setIframeKey } =
useBlockViewer()
const { copyToClipboard, isCopied } = useCopyToClipboard()
return (
<div className="hidden w-full items-center gap-2 pl-2 md:pr-6 lg:flex">
<Tabs
value={view}
onValueChange={(value) => setView(value as "preview" | "code")}
>
<TabsList className="grid h-8! grid-cols-2 items-center rounded-lg p-1 *:data-[slot=tabs-trigger]:h-6 *:data-[slot=tabs-trigger]:rounded-sm *:data-[slot=tabs-trigger]:px-2 *:data-[slot=tabs-trigger]:text-xs">
<TabsTrigger value="preview">Preview</TabsTrigger>
<TabsTrigger value="code">Code</TabsTrigger>
</TabsList>
</Tabs>
<Separator orientation="vertical" className="mx-2 h-4!" />
<a
href={`#${item.name}`}
className="flex-1 text-center text-sm font-medium underline-offset-2 hover:underline md:flex-auto md:text-left"
>
{item.description?.replace(/\.$/, "")}
</a>
<div className="ml-auto flex items-center gap-2">
<div className="h-8 items-center gap-1.5 rounded-md border p-[3px] shadow-none">
<ToggleGroup
type="single"
defaultValue="100"
onValueChange={(value) => {
setView("preview")
if (resizablePanelRef?.current) {
resizablePanelRef.current.resize(parseInt(value))
}
}}
className="gap-1 *:data-[slot=toggle-group-item]:size-6! *:data-[slot=toggle-group-item]:rounded-sm!"
>
<ToggleGroupItem value="100" title="Desktop">
<Monitor />
</ToggleGroupItem>
<ToggleGroupItem value="60" title="Tablet">
<Tablet />
</ToggleGroupItem>
<ToggleGroupItem value="30" title="Mobile">
<Smartphone />
</ToggleGroupItem>
<Separator orientation="vertical" className="h-4!" />
<Button
size="icon"
variant="ghost"
className="size-6 rounded-sm p-0"
asChild
title="Open in New Tab"
>
<Link href={`/view/${styleName}/${item.name}`} target="_blank">
<span className="sr-only">Open in New Tab</span>
<Fullscreen />
</Link>
</Button>
<Separator orientation="vertical" className="h-4!" />
<Button
size="icon"
variant="ghost"
className="size-6 rounded-sm p-0"
title="Refresh Preview"
onClick={() => {
if (setIframeKey) {
setIframeKey((k) => k + 1)
}
}}
>
<RotateCw />
<span className="sr-only">Refresh Preview</span>
</Button>
</ToggleGroup>
</div>
<Separator orientation="vertical" className="mx-1 h-4!" />
<Button
variant="outline"
className="w-fit gap-1 px-2 shadow-none"
size="sm"
onClick={() => {
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does BlockViewerToolbar() do?
BlockViewerToolbar() is a function in the ui codebase, defined in apps/v4/components/block-viewer.tsx.
Where is BlockViewerToolbar() defined?
BlockViewerToolbar() is defined in apps/v4/components/block-viewer.tsx at line 146.
What does BlockViewerToolbar() call?
BlockViewerToolbar() calls 1 function(s): useBlockViewer.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free