Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create deployment options page #543

Merged
merged 19 commits into from
Oct 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions gatsby-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ const cfg: GatsbyConfig = {
`500`,
`600`,
`700`,
`900`,
],
},
],
Expand Down
4 changes: 4 additions & 0 deletions shared.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { features } from './src/components/DeploymentOptionsPage/shared';

export const webinarsUrl =
'https://try.estuary.dev/webinar-estuary101-ondemand';

Expand Down Expand Up @@ -144,3 +146,5 @@ export interface Vendor {
};
};
}

export type DeploymentOption = keyof typeof features;
5 changes: 0 additions & 5 deletions src/components/ContactUs/index.tsx

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
address,
} from './styles.module.less';

const SectionTwo = () => {
const Address = () => {
const {
streetAddress,
addressLocality,
Expand Down Expand Up @@ -39,4 +39,4 @@ const SectionTwo = () => {
);
};

export default SectionTwo;
export default Address;
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
redirectLink,
} from './styles.module.less';

const SectionOne = () => {
const FormSection = () => {
return (
<section className={section}>
<ContactUsForm titleHeadingLevel="h1" />
Expand All @@ -26,4 +26,4 @@ const SectionOne = () => {
);
};

export default SectionOne;
export default FormSection;
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { defaultWrapperDark } from '../../../globalStyles/wrappers.module.less';
import { dashboardRegisterUrl } from '../../../../shared';
import { container, title } from './styles.module.less';

const SectionThree = () => {
const GetEmail = () => {
return (
<section className={defaultWrapperDark}>
<div className={container}>
Expand All @@ -21,4 +21,4 @@ const SectionThree = () => {
);
};

export default SectionThree;
export default GetEmail;
21 changes: 21 additions & 0 deletions src/components/Container/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import React, { ReactNode } from 'react';
import clsx from 'clsx';
import { container, vertical } from './styles.module.less';

interface ContainerProps {
children: ReactNode;
className?: string;
isVertical?: boolean;
}

const Container = ({ children, className, isVertical }: ContainerProps) => {
return (
<div
className={clsx(container, className, isVertical ? vertical : null)}
>
{children}
</div>
);
};

export default Container;
39 changes: 39 additions & 0 deletions src/components/Container/styles.module.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@import '../../globalStyles/sections.module.less';

.container {
.globalMaxWidth;
display: flex;
gap: 60px;
align-items: center;
justify-content: space-between;

> :nth-child(1),
> :nth-child(2) {
flex: 1;
max-width: 50%;
}

@media (max-width: 1024px) {
flex-direction: column-reverse;
gap: 40px;

> :nth-child(1),
> :nth-child(2) {
max-width: 100%;
}
}

@media (max-width: 425px) {
gap: 20px;
}
}

.vertical {
flex-direction: column;

> :nth-child(1),
> :nth-child(2) {
flex: 1;
max-width: 100%;
}
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,29 @@
import React from 'react';
import KeyFeature from '../KeyFeature';
import KeyFeature from '../Homepage/DeploymentModes/KeyFeature';
import { wrapper } from './styles.module.less';

interface DeploymentOptionDetailsProps {
title: string;
description: string;
keyFeatures: string[];
TitleHeadingLevel?: keyof JSX.IntrinsicElements;
KeyFeaturesTitleHeadingLevel?: keyof JSX.IntrinsicElements;
}

const DeploymentOptionDetails = ({
title,
description,
keyFeatures,
TitleHeadingLevel = 'h3',
KeyFeaturesTitleHeadingLevel = 'h4',
}: DeploymentOptionDetailsProps) => {
return (
<div className={wrapper}>
<h3>{title}</h3>
<TitleHeadingLevel>{title}</TitleHeadingLevel>
<p>{description}</p>
<h4>Key Features:</h4>
<KeyFeaturesTitleHeadingLevel>
Key Features:
</KeyFeaturesTitleHeadingLevel>
<ul>
{keyFeatures.map((keyFeature, index) => (
<KeyFeature key={index} title={keyFeature} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@
gap: 16px;
font-size: 1rem;

h3 {
h2, h3 {
font-size: 1.25rem;
line-height: 24px;
color: #47506D;
text-transform: uppercase;
font-weight: 700;
}

p {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
import React from 'react';
import clsx from 'clsx';
import CloudProviderIcon from '../../../../svgs/cloud-provider-icon.svg';
import CustomerCloudIcon from '../../../../svgs/customer-cloud-icon.svg';
import ControlPlaneIcon from '../../../../svgs/control-plane-icon.svg';
import VpcIcon from '../../../../svgs/vpc-icon.svg';
import DatabaseIcon from '../../../../svgs/database-icon.svg';
import FlowStorageIcon from '../../../../svgs/flow-storage-icon.svg';
import UsaFlagIcon from '../../../../svgs/usa-flag-icon.svg';
import EuropeFlagIcon from '../../../../svgs/europe-flag-icon.svg';
import PrivateDataPlaneIcon from '../../../../svgs/private-data-plane-icon.svg';
import CloudProviderIcon from '../../svgs/cloud-provider-icon.svg';
import CustomerCloudIcon from '../../svgs/customer-cloud-icon.svg';
import ControlPlaneIcon from '../../svgs/control-plane-icon.svg';
import VpcIcon from '../../svgs/vpc-icon.svg';
import DatabaseIcon from '../../svgs/database-icon.svg';
import FlowStorageIcon from '../../svgs/flow-storage-icon.svg';
import UsaFlagIcon from '../../svgs/usa-flag-icon.svg';
import EuropeFlagIcon from '../../svgs/europe-flag-icon.svg';
import PrivateDataPlaneIcon from '../../svgs/private-data-plane-icon.svg';
import { DeploymentOption } from '../../../shared';
import {
container,
solidBorderBox,
secondLevelSolidBorderBox,
dashedBorderBox,
Expand All @@ -23,22 +25,21 @@ import {
vpcMarginBottom,
privateDeploymentTag,
metadataOnlyDarkerBlueTag,
metadataOnlyLighterBlueTag,
relativePosition,
privateDeploymentVpcBox,
} from '../styles.module.less';
} from './styles.module.less';

const iconSize = 30;

interface DeploymentDiagramProps {
selectedTab: string;
deploymentOption: DeploymentOption;
}

const DeploymentOptionDiagram = ({
selectedTab = '1',
deploymentOption = 'public',
}: DeploymentDiagramProps) => {
return (
<>
<div className={container}>
<div className={solidBorderBox}>
<div className={dashedBorderBox}>
<CloudProviderIcon width={iconSize} />
Expand All @@ -53,7 +54,7 @@ const DeploymentOptionDiagram = ({
<ControlPlaneIcon width={iconSize} />
<span>Control Plane</span>
</div>
{selectedTab === '1' ? (
{deploymentOption === 'public' ? (
<div className={horizontalWrapper}>
<div
className={clsx(
Expand Down Expand Up @@ -81,12 +82,12 @@ const DeploymentOptionDiagram = ({
<div className={dashedBorderBox}>
<CustomerCloudIcon width={iconSize} />
<span>
{selectedTab === '1'
{deploymentOption === 'public'
? 'Customer Cloud'
: 'Customer Cloud & Region'}
</span>
<div className={horizontalWrapper}>
{selectedTab === '2' ? (
{deploymentOption === 'private' ? (
<div
className={clsx(
solidBorderBox,
Expand Down Expand Up @@ -117,13 +118,15 @@ const DeploymentOptionDiagram = ({
<VpcIcon width={iconSize} />
<span
className={
selectedTab === '2' ? vpcMarginBottom : null
deploymentOption === 'private'
? vpcMarginBottom
: null
}
>
Customer VPC
</span>
<div className={horizontalWrapper}>
{selectedTab === '3' ? (
{deploymentOption === 'byoc' ? (
<div className={dashedBorderBox}>
<PrivateDataPlaneIcon
width={iconSize}
Expand All @@ -148,23 +151,18 @@ const DeploymentOptionDiagram = ({
</div>
</div>
</div>
{['1', '3'].includes(selectedTab) ? (
<div
className={clsx(
middleTag,
selectedTab === '3'
? metadataOnlyLighterBlueTag
: null
)}
>
{['public', 'byoc'].includes(deploymentOption) ? (
<div className={middleTag}>
<div className={clsx(tagArrow, tagArrowLeft)} />
<span>
{selectedTab === '1' ? 'Internet' : 'metadata only'}
{deploymentOption === 'public'
? 'Internet'
: 'metadata only'}
</span>
<div className={clsx(tagArrow, tagArrowRight)} />
</div>
) : null}
{selectedTab === '2' ? (
{deploymentOption === 'private' ? (
<>
<div
className={clsx(
Expand All @@ -191,7 +189,7 @@ const DeploymentOptionDiagram = ({
</>
) : null}
</div>
</>
</div>
);
};

Expand Down
Loading
Loading