Files
vercel__chat/apps/docs/components/geistdocs/open-in-chat.tsx
Hayden Bleasel 0edc599927 Docs updates (#52)
* Update meta.json

* Create posting-messages.mdx

* Colocate Slack app info

* Improve feature matrix

* Create API Reference

* Update for Channels

* Draft first guide

* Update Geistdocs
2026-02-17 13:01:15 -08:00

50 lines
1.2 KiB
TypeScript

import { ExternalLinkIcon } from "lucide-react";
import {
OpenIn,
OpenInChatGPT,
OpenInClaude,
OpenInContent,
OpenInCursor,
OpenInScira,
OpenInSeparator,
OpenInT3,
OpenInTrigger,
OpenInv0,
} from "@/components/ai-elements/open-in-chat";
interface OpenInChatProps {
href: string;
}
export const OpenInChat = ({ href }: OpenInChatProps) => {
const protocol = process.env.NODE_ENV === "production" ? "https" : "http";
const url = new URL(
href,
`${protocol}://${process.env.NEXT_PUBLIC_VERCEL_PROJECT_PRODUCTION_URL}`
).toString();
const query = `Read this page, I want to ask questions about it. ${url}`;
return (
<OpenIn query={query}>
<OpenInTrigger asChild>
<button
className="flex items-center gap-1.5 text-muted-foreground text-sm transition-colors hover:text-foreground"
type="button"
>
<ExternalLinkIcon className="size-4" />
Open in chat
</button>
</OpenInTrigger>
<OpenInContent align="start" side="top">
<OpenInv0 />
<OpenInSeparator />
<OpenInChatGPT />
<OpenInClaude />
<OpenInT3 />
<OpenInScira />
<OpenInCursor />
</OpenInContent>
</OpenIn>
);
};