|
import { useStore } from '@nanostores/react'; |
|
import { netlifyConnection, fetchNetlifyStats } from '~/lib/stores/netlify'; |
|
import { chatId } from '~/lib/persistence/useChatHistory'; |
|
import * as Tooltip from '@radix-ui/react-tooltip'; |
|
import { useEffect } from 'react'; |
|
|
|
export function NetlifyDeploymentLink() { |
|
const connection = useStore(netlifyConnection); |
|
const currentChatId = useStore(chatId); |
|
|
|
useEffect(() => { |
|
if (connection.token && currentChatId) { |
|
fetchNetlifyStats(connection.token); |
|
} |
|
}, [connection.token, currentChatId]); |
|
|
|
const deployedSite = connection.stats?.sites?.find((site) => site.name.includes(`bolt-diy-${currentChatId}`)); |
|
|
|
if (!deployedSite) { |
|
return null; |
|
} |
|
|
|
return ( |
|
<Tooltip.Provider> |
|
<Tooltip.Root> |
|
<Tooltip.Trigger asChild> |
|
<a |
|
href={deployedSite.url} |
|
target="_blank" |
|
rel="noopener noreferrer" |
|
className="inline-flex items-center justify-center w-8 h-8 rounded hover:bg-bolt-elements-item-backgroundActive text-bolt-elements-textSecondary hover:text-[#00AD9F] z-50" |
|
onClick={(e) => { |
|
e.stopPropagation(); // Add this to prevent click from bubbling up |
|
}} |
|
> |
|
<div className="i-ph:rocket-launch w-5 h-5" /> |
|
</a> |
|
</Tooltip.Trigger> |
|
<Tooltip.Portal> |
|
<Tooltip.Content |
|
className="px-3 py-2 rounded bg-bolt-elements-background-depth-3 text-bolt-elements-textPrimary text-xs z-50" |
|
sideOffset={5} |
|
> |
|
{deployedSite.url} |
|
<Tooltip.Arrow className="fill-bolt-elements-background-depth-3" /> |
|
</Tooltip.Content> |
|
</Tooltip.Portal> |
|
</Tooltip.Root> |
|
</Tooltip.Provider> |
|
); |
|
} |
|
|