forked from emre/www_projectmycelium_com
refactor: update CTA buttons with external links and navigation improvements
- Changed "Deploy a Model" button in agents CallToAction to external link (myceliumcloud.tf) with target="_blank" - Updated "Host a Node" button path from /host to /nodes in agents and cloud CallToAction - Changed cloud CallToAction "Start Deploying" button to external link with target="_blank" - Updated CloudHeroNew buttons to external links for myceliumcloud.tf and docs - Removed onGetStartedClick handler from CloudHeroNew in
This commit is contained in:
@@ -51,13 +51,21 @@ export function CallToAction() {
|
|||||||
{/* ✅ Two cards, stacked center with spacing */}
|
{/* ✅ Two cards, stacked center with spacing */}
|
||||||
<div className="mt-8 flex flex-wrap justify-center gap-x-10 gap-y-8">
|
<div className="mt-8 flex flex-wrap justify-center gap-x-10 gap-y-8">
|
||||||
<div className="flex flex-col items-center text-center max-w-xs">
|
<div className="flex flex-col items-center text-center max-w-xs">
|
||||||
<Button to="/deploy" variant="solid" color="cyan" className="mt-4">
|
<Button
|
||||||
|
as="a"
|
||||||
|
to="https://myceliumcloud.tf"
|
||||||
|
variant="solid"
|
||||||
|
color="cyan"
|
||||||
|
className="mt-4"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
Deploy a Model
|
Deploy a Model
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-col items-center text-center max-w-xs">
|
<div className="flex flex-col items-center text-center max-w-xs">
|
||||||
<Button to="/host" as="a" variant="outline" color="white" className="mt-4">
|
<Button to="/nodes" variant="outline" color="white" className="mt-4">
|
||||||
Host a Node
|
Host a Node
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -52,13 +52,21 @@ export function CallToAction() {
|
|||||||
{/* ✅ Two cards, stacked center with spacing */}
|
{/* ✅ Two cards, stacked center with spacing */}
|
||||||
<div className="mt-10 flex flex-wrap justify-center gap-x-10 gap-y-8">
|
<div className="mt-10 flex flex-wrap justify-center gap-x-10 gap-y-8">
|
||||||
<div className="flex flex-col items-center text-center max-w-xs">
|
<div className="flex flex-col items-center text-center max-w-xs">
|
||||||
<Button to="/host" variant="solid" color="cyan" className="mt-4">
|
<Button to="/nodes" variant="solid" color="cyan" className="mt-4">
|
||||||
Host a Node
|
Host a Node
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex flex-col items-center text-center max-w-xs">
|
<div className="flex flex-col items-center text-center max-w-xs">
|
||||||
<Button to="/cloud" variant="outline" color="white" className="mt-4">
|
<Button
|
||||||
|
as="a"
|
||||||
|
to="https://myceliumcloud.tf"
|
||||||
|
variant="outline"
|
||||||
|
color="white"
|
||||||
|
className="mt-4"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
Start Deploying
|
Start Deploying
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,13 +27,22 @@ export function CloudHeroNew({ onGetStartedClick = () => {} }: { onGetStartedCli
|
|||||||
</p>
|
</p>
|
||||||
<div className="mt-10 flex items-center gap-x-6">
|
<div className="mt-10 flex items-center gap-x-6">
|
||||||
<Button
|
<Button
|
||||||
onClick={onGetStartedClick}
|
as="a"
|
||||||
|
to="https://myceliumcloud.tf"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="cyan"
|
color="cyan"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
>
|
>
|
||||||
Deploy Workloads
|
Deploy Workloads
|
||||||
</Button>
|
</Button>
|
||||||
<Button to="#" variant="outline">
|
<Button
|
||||||
|
as="a"
|
||||||
|
to="https://myceliumcloud.tf/docs"
|
||||||
|
variant="outline"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
Explore Docs <span aria-hidden="true">→</span>
|
Explore Docs <span aria-hidden="true">→</span>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@@ -41,7 +50,7 @@ export function CloudHeroNew({ onGetStartedClick = () => {} }: { onGetStartedCli
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{/* ✅ Bottom horizontal line with spacing */}
|
{/* Bottom horizontal line with spacing */}
|
||||||
<div className="w-full border-b border-gray-100" />
|
<div className="w-full border-b border-gray-100" />
|
||||||
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -79,6 +79,18 @@ export function CloudIntro() {
|
|||||||
const current = tabs.find((t) => t.id === active)!.content;
|
const current = tabs.find((t) => t.id === active)!.content;
|
||||||
const currentButtons = tabButtons[active as keyof typeof tabButtons];
|
const currentButtons = tabButtons[active as keyof typeof tabButtons];
|
||||||
|
|
||||||
|
const primaryLinks: Record<string, string | undefined> = {
|
||||||
|
kubernetes: "https://myceliumcloud.tf",
|
||||||
|
vdc: undefined,
|
||||||
|
qsfs: undefined,
|
||||||
|
};
|
||||||
|
|
||||||
|
const secondaryLinks: Record<string, string | undefined> = {
|
||||||
|
kubernetes: "https://myceliumcloud.tf/docs",
|
||||||
|
vdc: "https://threefold.info/mycelium_vdc/docs/",
|
||||||
|
qsfs: undefined,
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="relative w-full bg-[#121212] overflow-hidden">
|
<section className="relative w-full bg-[#121212] overflow-hidden">
|
||||||
{/* Top Spacing Border */}
|
{/* Top Spacing Border */}
|
||||||
@@ -164,17 +176,25 @@ export function CloudIntro() {
|
|||||||
{currentButtons && (
|
{currentButtons && (
|
||||||
<div className="mt-8 flex flex-wrap gap-4">
|
<div className="mt-8 flex flex-wrap gap-4">
|
||||||
<Button
|
<Button
|
||||||
to="#"
|
as={primaryLinks[active] ? "a" : undefined}
|
||||||
|
to={primaryLinks[active] ?? "#"}
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="cyan"
|
color="cyan"
|
||||||
|
{...(primaryLinks[active]
|
||||||
|
? { target: "_blank", rel: "noopener noreferrer" }
|
||||||
|
: {})}
|
||||||
>
|
>
|
||||||
{currentButtons.primary}
|
{currentButtons.primary}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
to="#"
|
as={secondaryLinks[active] ? "a" : undefined}
|
||||||
|
to={secondaryLinks[active] ?? "#"}
|
||||||
variant="outline"
|
variant="outline"
|
||||||
color="white"
|
color="white"
|
||||||
|
{...(secondaryLinks[active]
|
||||||
|
? { target: "_blank", rel: "noopener noreferrer" }
|
||||||
|
: {})}
|
||||||
>
|
>
|
||||||
{currentButtons.secondary}
|
{currentButtons.secondary}
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export function CallToAction() {
|
|||||||
</P>
|
</P>
|
||||||
|
|
||||||
<div className="mt-10 flex flex-wrap justify-center items-center gap-x-6 gap-y-4">
|
<div className="mt-10 flex flex-wrap justify-center items-center gap-x-6 gap-y-4">
|
||||||
<Button to="/network" variant="solid" color="cyan">
|
<Button to="/network#download" variant="solid" color="cyan">
|
||||||
Join the Network
|
Join the Network
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { H3, H5, Eyebrow } from "@/components/Texts"
|
import { H3, H5, Eyebrow } from "@/components/Texts"
|
||||||
import { Button } from "@/components/Button"
|
import { Button } from "@/components/Button"
|
||||||
|
|
||||||
export function HomeAurora({ onGetStartedClick }: { onGetStartedClick: () => void }) {
|
export function HomeAurora() {
|
||||||
return (
|
return (
|
||||||
<div className="px-4">
|
<div className="px-4">
|
||||||
{/* Boxed container */}
|
{/* Boxed container */}
|
||||||
@@ -24,13 +24,13 @@ export function HomeAurora({ onGetStartedClick }: { onGetStartedClick: () => voi
|
|||||||
|
|
||||||
<div className="mt-8 flex items-center gap-x-6">
|
<div className="mt-8 flex items-center gap-x-6">
|
||||||
<Button
|
<Button
|
||||||
|
to="/nodes"
|
||||||
variant="solid"
|
variant="solid"
|
||||||
color="cyan"
|
color="cyan"
|
||||||
onClick={onGetStartedClick}
|
|
||||||
>
|
>
|
||||||
Start Hosting
|
Start Hosting
|
||||||
</Button>
|
</Button>
|
||||||
<Button to="#" variant="outline">
|
<Button to="/cloud" variant="outline">
|
||||||
Deploy in Cloud →
|
Deploy in Cloud →
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
import { useRef } from 'react'
|
|
||||||
import { AnimatedSection } from '../../components/AnimatedSection'
|
import { AnimatedSection } from '../../components/AnimatedSection'
|
||||||
import { CallToAction } from './CallToAction'
|
import { CallToAction } from './CallToAction'
|
||||||
import { HomeTab } from './HomeTab'
|
import { HomeTab } from './HomeTab'
|
||||||
@@ -11,15 +10,10 @@ import { HomeDesign } from './HomeDesign';
|
|||||||
|
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const sliderRef = useRef<HTMLDivElement>(null)
|
|
||||||
|
|
||||||
const handleScrollToSlider = () => {
|
|
||||||
sliderRef.current?.scrollIntoView({ behavior: 'smooth' })
|
|
||||||
}
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<AnimatedSection>
|
<AnimatedSection>
|
||||||
<HomeAurora onGetStartedClick={handleScrollToSlider} />
|
<HomeAurora />
|
||||||
</AnimatedSection>
|
</AnimatedSection>
|
||||||
|
|
||||||
<AnimatedSection>
|
<AnimatedSection>
|
||||||
|
|||||||
@@ -96,7 +96,14 @@ export function Hero() {
|
|||||||
<Button to="/download" variant="solid" color="cyan">
|
<Button to="/download" variant="solid" color="cyan">
|
||||||
Get Started
|
Get Started
|
||||||
</Button>
|
</Button>
|
||||||
<Button to="/download" variant="outline" color="cyan">
|
<Button
|
||||||
|
as="a"
|
||||||
|
to="https://threefold.info/mycelium_network/docs/"
|
||||||
|
variant="outline"
|
||||||
|
color="cyan"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>
|
||||||
Explore Docs
|
Explore Docs
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const features = [
|
|||||||
|
|
||||||
export function NetworkDownload() {
|
export function NetworkDownload() {
|
||||||
return (
|
return (
|
||||||
<section className="w-full max-w-8xl mx-auto bg-transparent">
|
<section id="download" className="w-full max-w-8xl mx-auto bg-transparent">
|
||||||
|
|
||||||
{/* ✅ Top horizontal line with spacing */}
|
{/* ✅ Top horizontal line with spacing */}
|
||||||
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-100"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user