mirror of
https://github.com/vercel/chat.git
synced 2026-09-14 18:32:29 +08:00
0edc599927
* 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
50 lines
1.2 KiB
TypeScript
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>
|
|
);
|
|
};
|