BlockDex

Components

Registries

Free blocks

Method

BlockDex

Components

Registries

Free blocks

Method

Open API

BlockDex

Components

Registries

Free blocks

Method

Open API

Components/ncdai/share-menu

Share Menu

ncdai/share-menu
UnverifiedComponent

Share menu to copy a link or post to X, LinkedIn, and the native share sheet.

Install it

npx shadcn@latest add https://raw.githubusercontent.com/srirae/iamsri/main/public/r/share-menu.json

Source

src/registry/components/share-menu/share-menu.tsxraw.githubusercontent.com/srirae/iamsri/main/public/r/share-menu.json
1"use client"
2
3import { toast } from "sonner"
4
5import { Button } from "@/components/ui/button"
6import {
7 DropdownMenu,
8 DropdownMenuContent,
9 DropdownMenuItem,
10 DropdownMenuTrigger,
11} from "@/components/ui/dropdown-menu"
12import { IconPlaceholder } from "@/registry/icons/icon-placeholder"
13
14export type ShareMenuProps = {
15 /** Title passed to the native share sheet. */
16 title: string
17 /** URL to share. Relative URLs are resolved against the current origin. */
18 url: string
19}
20
21export function ShareMenu({ title, url }: ShareMenuProps) {
22 const absoluteUrl = url.startsWith("http")
23 ? url
24 : typeof window !== "undefined"
25 ? new URL(url, window.location.origin).toString()
26 : url
27
28 const urlEncoded = encodeURIComponent(absoluteUrl)
29
30 return (
31 <DropdownMenu>
32 <DropdownMenuTrigger asChild>
33 <Button variant="outline" size="icon-sm">
34 <IconPlaceholder
35 lucide="ShareIcon"
36 tabler="IconShare2"
37 hugeicons="Share03Icon"
38 phosphor="ExportIcon"
39 remixicon="RiShare2Line"
40 />
41 </Button>
42 </DropdownMenuTrigger>
43
44 <DropdownMenuContent
45 className="w-fit"
46 align="start"
47 alignOffset={-6}
48 collisionPadding={16}
49 onCloseAutoFocus={(e) => e.preventDefault()}
50 >
51 <DropdownMenuItem
52 onClick={() => {
53 copyText(absoluteUrl)
54 toast.success("Link copied")
55 }}
56 >
57 <IconPlaceholder
58 lucide="LinkIcon"
59 tabler="IconLink"
60 hugeicons="Link01Icon"
61 phosphor="LinkIcon"
62 remixicon="RiLinkM"
63 />
64 Copy link
65 </DropdownMenuItem>
66
67 <DropdownMenuItem asChild>
68 <a
69 href={`https://x.com/intent/tweet?url=${urlEncoded}`}
70 target="_blank"
71 rel="noopener"
72 >
73 <XIcon />
74 Share on X
75 </a>
76 </DropdownMenuItem>
77
78 <DropdownMenuItem asChild>
79 <a
80 href={`https://www.linkedin.com/sharing/share-offsite?url=${urlEncoded}`}
81 target="_blank"
82 rel="noopener"
83 >
84 <LinkedInIcon />
85 Share on LinkedIn
86 </a>
87 </DropdownMenuItem>
88
89 {typeof navigator !== "undefined" && "share" in navigator && (
90 <DropdownMenuItem
91 onClick={(e) => {
92 e.preventDefault() // Prevent the menu from closing
93// … truncated

What it pulls in

Other registry items

  • button
  • dropdown-menu
  • sonner

Files it writes

  • src/registry/components/share-menu/share-menu.tsx

Facts

Registry
ncdai
Type
registry:component
Access
Unverified
Files written
1
Licence
MIT
First indexed
2026-08-03
Last confirmed
today

Go to the source

chanhdai.com Sumeet011/Portfolio on GitHub Raw registry item This item as JSON

More from ncdai

All 48 items
Same registry, same kind — the ones you would have found next
ComponentRegistryKindAccessInstallsCommand
Apple Hello Effectapple-hello-effectncdaiComponentsUnverified1 dep
Apple Hello Effect - Hindiapple-hello-effect-hindincdaiComponentsUnverified1 dep
Apple Hello Effect - Spanishapple-hello-effect-spanishncdaiComponentsUnverified1 dep
Apple Hello Effect - Vietnameseapple-hello-effect-vietnamesencdaiComponentsUnverified1 dep
Brand Assets Menubrand-assets-menuncdaiComponentsUnverified1 dep
chevrons-up-down-iconchevrons-up-down-iconncdaiComponentsUnverified1 dep
Code Block Commandcode-block-commandncdaiComponentsUnverified4 deps · 2 files
Consent Managerconsent-managerncdaiComponentsUnverified1 dep
BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex

BlockDex

Built by

Kynth Studio

Index

Components
Registries
Method
Open API

Guides

shadcn component libraries
Best shadcn registries
Free shadcn blocks

Reference

Corpus counts
Crawl health
hello@kynth.studio
Privacy
Terms

BlockDex