diff --git a/apps/builder/assets/logos/StripeClimateLogo.tsx b/apps/builder/assets/logos/StripeClimateLogo.tsx index 415881091..b51e79ddb 100644 --- a/apps/builder/assets/logos/StripeClimateLogo.tsx +++ b/apps/builder/assets/logos/StripeClimateLogo.tsx @@ -18,8 +18,8 @@ export const StripeClimateLogo = (props: IconProps) => ( y2="7.8394" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + ( y2="17.2443" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + ( y2="29.1239" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + { return ( - + + Subscription Current workspace subscription: @@ -70,7 +70,7 @@ export const CurrentSubscriptionContent = ({ {isSubscribed && !isCancelling && ( <> - + Need to change payment method or billing information? Head over to your billing portal: diff --git a/apps/builder/components/dashboard/WorkspaceSettingsModal/BillingContent/UsageContent/UsageContent.tsx b/apps/builder/components/dashboard/WorkspaceSettingsModal/BillingContent/UsageContent/UsageContent.tsx index 493c00002..59c3e4311 100644 --- a/apps/builder/components/dashboard/WorkspaceSettingsModal/BillingContent/UsageContent/UsageContent.tsx +++ b/apps/builder/components/dashboard/WorkspaceSettingsModal/BillingContent/UsageContent/UsageContent.tsx @@ -127,13 +127,6 @@ export const UsageContent = ({ workspace }: Props) => { )} - { }) return ( - + {!canInviteNewMember && ( ( + + + + + +) diff --git a/apps/landing-page/assets/logos/StripeClimateLogo.tsx b/apps/landing-page/assets/logos/StripeClimateLogo.tsx index 415881091..b51e79ddb 100644 --- a/apps/landing-page/assets/logos/StripeClimateLogo.tsx +++ b/apps/landing-page/assets/logos/StripeClimateLogo.tsx @@ -18,8 +18,8 @@ export const StripeClimateLogo = (props: IconProps) => ( y2="7.8394" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + ( y2="17.2443" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + ( y2="29.1239" gradientTransform="matrix(1 0 0 -1 0 34)" > - - + + { return ( @@ -41,7 +41,7 @@ export const EasyBuildingExperience = () => { } /> ) diff --git a/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx b/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx index 8d54361be..384595ef7 100644 --- a/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx +++ b/apps/landing-page/components/PricingPage/PlanComparisonTables.tsx @@ -17,9 +17,10 @@ import { } from '@chakra-ui/react' import { CheckIcon } from 'assets/icons/CheckIcon' import { HelpCircleIcon } from 'assets/icons/HelpCircleIcon' -import { NextChakraLink } from 'components/common/nextChakraAdapters/NextChakraLink' import { Plan } from 'db' -import React from 'react' +import Link from 'next/link' +import React, { useEffect, useState } from 'react' +import { chatsLimit, formatPrice, storageLimit } from 'utils' type Props = { starterPrice: string @@ -31,6 +32,20 @@ export const PlanComparisonTables = ({ proPrice, ...props }: Props) => { + const [additionalChatsPrice, setAdditionalChatsPrice] = useState( + `$${chatsLimit.STARTER.increaseStep.price}` + ) + const [additionalStoragePrice, setAdditionalStoragePrice] = useState( + `$${storageLimit.STARTER.increaseStep.price}` + ) + + useEffect(() => { + setAdditionalChatsPrice(formatPrice(chatsLimit.STARTER.increaseStep.price)) + setAdditionalStoragePrice( + formatPrice(storageLimit.STARTER.increaseStep.price) + ) + }, []) + return ( @@ -61,8 +76,8 @@ export const PlanComparisonTables = ({ Additional Chats - $10 per 500 - $10 per 1,000 + {additionalChatsPrice} per 500 + {additionalChatsPrice} per 1,000 Storage @@ -73,8 +88,8 @@ export const PlanComparisonTables = ({ Additional Storage - $5 per 1 GB - $5 per 1 GB + {additionalStoragePrice} per 1 GB + {additionalStoragePrice} per 1 GB Members @@ -331,12 +346,9 @@ export const PlanComparisonTables = ({ Personal Free - + - + @@ -345,12 +357,11 @@ export const PlanComparisonTables = ({ {starterPrice} / month - - + @@ -359,12 +370,11 @@ export const PlanComparisonTables = ({ {proPrice} / month - - + @@ -378,12 +388,12 @@ const TdWithTooltip = ({ text: string tooltip: string }) => ( - + {text} - + ) diff --git a/apps/landing-page/components/PricingPage/PricingCard/ActionButton.tsx b/apps/landing-page/components/PricingPage/PricingCard/ActionButton.tsx deleted file mode 100644 index 438d10474..000000000 --- a/apps/landing-page/components/PricingPage/PricingCard/ActionButton.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Button, ButtonProps } from '@chakra-ui/react' -import * as React from 'react' - -export const ActionButton = (props: ButtonProps) => ( - } /> ) diff --git a/apps/landing-page/components/PricingPage/StarterPlanCard.tsx b/apps/landing-page/components/PricingPage/StarterPlanCard.tsx index 166b936bf..e995599c9 100644 --- a/apps/landing-page/components/PricingPage/StarterPlanCard.tsx +++ b/apps/landing-page/components/PricingPage/StarterPlanCard.tsx @@ -11,8 +11,8 @@ import { } from '@chakra-ui/react' import { ChevronDownIcon } from 'assets/icons/ChevronDownIcon' import { HelpCircleIcon } from 'assets/icons/HelpCircleIcon' -import { NextChakraLink } from 'components/common/nextChakraAdapters/NextChakraLink' import { Plan } from 'db' +import Link from 'next/link' import React, { useEffect, useState } from 'react' import { chatsLimit, @@ -22,10 +22,9 @@ import { storageLimit, } from 'utils' import { PricingCard } from './PricingCard' -import { ActionButton } from './PricingCard/ActionButton' export const StarterPlanCard = () => { - const [price, setPrice] = useState('39$') + const [price, setPrice] = useState(39) const [selectedChatsLimitIndex, setSelectedChatsLimitIndex] = useState(0) @@ -34,13 +33,11 @@ export const StarterPlanCard = () => { useEffect(() => { setPrice( - formatPrice( - computePrice( - Plan.STARTER, - selectedChatsLimitIndex ?? 0, - selectedStorageLimitIndex ?? 0 - ) ?? NaN - ) + computePrice( + Plan.STARTER, + selectedChatsLimitIndex ?? 0, + selectedStorageLimitIndex ?? 0 + ) ?? NaN ) }, [selectedChatsLimitIndex, selectedStorageLimitIndex]) @@ -54,67 +51,62 @@ export const StarterPlanCard = () => { 2 seats included , - - - - } - size="sm" - variant="outline" - isLoading={selectedChatsLimitIndex === undefined} - colorScheme="orange" - > - {selectedChatsLimitIndex !== undefined - ? parseNumberWithCommas( - chatsLimit.STARTER.totalIncluded + - chatsLimit.STARTER.increaseStep.amount * - selectedChatsLimitIndex - ) - : undefined} - - - {selectedChatsLimitIndex !== 0 && ( - setSelectedChatsLimitIndex(0)}> - {parseNumberWithCommas(chatsLimit.STARTER.totalIncluded)} - - )} - {selectedChatsLimitIndex !== 1 && ( - setSelectedChatsLimitIndex(1)}> - {parseNumberWithCommas( - chatsLimit.STARTER.totalIncluded + - chatsLimit.STARTER.increaseStep.amount - )} - - )} - {selectedChatsLimitIndex !== 2 && ( - setSelectedChatsLimitIndex(2)}> - {parseNumberWithCommas( - chatsLimit.STARTER.totalIncluded + - chatsLimit.STARTER.increaseStep.amount * 2 - )} - - )} - {selectedChatsLimitIndex !== 3 && ( - setSelectedChatsLimitIndex(3)}> - {parseNumberWithCommas( - chatsLimit.STARTER.totalIncluded + - chatsLimit.STARTER.increaseStep.amount * 3 - )} - - )} - {selectedChatsLimitIndex !== 4 && ( - setSelectedChatsLimitIndex(4)}> - {parseNumberWithCommas( - chatsLimit.STARTER.totalIncluded + - chatsLimit.STARTER.increaseStep.amount * 4 - )} - - )} - - {' '} - chats/mo - + + + } + size="sm" + variant="outline" + colorScheme="orange" + > + {parseNumberWithCommas( + chatsLimit.STARTER.totalIncluded + + chatsLimit.STARTER.increaseStep.amount * + selectedChatsLimitIndex + )} + + + {selectedChatsLimitIndex !== 0 && ( + setSelectedChatsLimitIndex(0)}> + {parseNumberWithCommas(chatsLimit.STARTER.totalIncluded)} + + )} + {selectedChatsLimitIndex !== 1 && ( + setSelectedChatsLimitIndex(1)}> + {parseNumberWithCommas( + chatsLimit.STARTER.totalIncluded + + chatsLimit.STARTER.increaseStep.amount + )} + + )} + {selectedChatsLimitIndex !== 2 && ( + setSelectedChatsLimitIndex(2)}> + {parseNumberWithCommas( + chatsLimit.STARTER.totalIncluded + + chatsLimit.STARTER.increaseStep.amount * 2 + )} + + )} + {selectedChatsLimitIndex !== 3 && ( + setSelectedChatsLimitIndex(3)}> + {parseNumberWithCommas( + chatsLimit.STARTER.totalIncluded + + chatsLimit.STARTER.increaseStep.amount * 3 + )} + + )} + {selectedChatsLimitIndex !== 4 && ( + setSelectedChatsLimitIndex(4)}> + {parseNumberWithCommas( + chatsLimit.STARTER.totalIncluded + + chatsLimit.STARTER.increaseStep.amount * 4 + )} + + )} + + {' '} + chats/mo { , - - - - } - size="sm" - variant="outline" - isLoading={selectedStorageLimitIndex === undefined} - colorScheme="orange" - > - {selectedStorageLimitIndex !== undefined - ? parseNumberWithCommas( - storageLimit.STARTER.totalIncluded + - storageLimit.STARTER.increaseStep.amount * - selectedStorageLimitIndex - ) - : undefined} - - - {selectedStorageLimitIndex !== 0 && ( - setSelectedStorageLimitIndex(0)}> - {parseNumberWithCommas( - storageLimit.STARTER.totalIncluded - )} - - )} - {selectedStorageLimitIndex !== 1 && ( - setSelectedStorageLimitIndex(1)}> - {parseNumberWithCommas( - storageLimit.STARTER.totalIncluded + - storageLimit.STARTER.increaseStep.amount - )} - - )} - {selectedStorageLimitIndex !== 2 && ( - setSelectedStorageLimitIndex(2)}> - {parseNumberWithCommas( - storageLimit.STARTER.totalIncluded + - storageLimit.STARTER.increaseStep.amount * 2 - )} - - )} - {selectedStorageLimitIndex !== 3 && ( - setSelectedStorageLimitIndex(3)}> - {parseNumberWithCommas( - storageLimit.STARTER.totalIncluded + - storageLimit.STARTER.increaseStep.amount * 3 - )} - - )} - {selectedStorageLimitIndex !== 4 && ( - setSelectedStorageLimitIndex(4)}> - {parseNumberWithCommas( - storageLimit.STARTER.totalIncluded + - storageLimit.STARTER.increaseStep.amount * 4 - )} - - )} - - {' '} - GB of storage - + + + } + size="sm" + variant="outline" + isLoading={selectedStorageLimitIndex === undefined} + colorScheme="orange" + > + {selectedStorageLimitIndex !== undefined + ? parseNumberWithCommas( + storageLimit.STARTER.totalIncluded + + storageLimit.STARTER.increaseStep.amount * + selectedStorageLimitIndex + ) + : undefined} + + + {selectedStorageLimitIndex !== 0 && ( + setSelectedStorageLimitIndex(0)}> + {parseNumberWithCommas(storageLimit.STARTER.totalIncluded)} + + )} + {selectedStorageLimitIndex !== 1 && ( + setSelectedStorageLimitIndex(1)}> + {parseNumberWithCommas( + storageLimit.STARTER.totalIncluded + + storageLimit.STARTER.increaseStep.amount + )} + + )} + {selectedStorageLimitIndex !== 2 && ( + setSelectedStorageLimitIndex(2)}> + {parseNumberWithCommas( + storageLimit.STARTER.totalIncluded + + storageLimit.STARTER.increaseStep.amount * 2 + )} + + )} + {selectedStorageLimitIndex !== 3 && ( + setSelectedStorageLimitIndex(3)}> + {parseNumberWithCommas( + storageLimit.STARTER.totalIncluded + + storageLimit.STARTER.increaseStep.amount * 3 + )} + + )} + {selectedStorageLimitIndex !== 4 && ( + setSelectedStorageLimitIndex(4)}> + {parseNumberWithCommas( + storageLimit.STARTER.totalIncluded + + storageLimit.STARTER.increaseStep.amount * 4 + )} + + )} + + {' '} + GB of storage { borderWidth="1px" borderColor="orange.200" button={ - - Subscribe now - + Subscribe now + } /> ) diff --git a/apps/landing-page/components/common/Footer.tsx b/apps/landing-page/components/common/Footer.tsx index 49c145657..5b9fe6787 100644 --- a/apps/landing-page/components/common/Footer.tsx +++ b/apps/landing-page/components/common/Footer.tsx @@ -9,8 +9,8 @@ import { Stack, Text, } from '@chakra-ui/react' -import { NextChakraLink } from './nextChakraAdapters/NextChakraLink' import { Logo } from 'assets/icons/Logo' +import { TextLink } from './TextLink' const facebookGroupUrl = 'https://www.facebook.com/groups/typebot' const typebotLinkedInUrl = 'https://www.linkedin.com/company/typebot' @@ -35,64 +35,40 @@ export const Footer = () => { Made with ❤️ by{' '} - - @baptisteArno - + @baptisteArno Product - + Documentation - - + + Roadmap - - - Pricing - + + Pricing Community - + GitHub repository - - + + Facebook Group - - + + Twitter - - + + LinkedIn - + Company - - About - - - Contact - - - Terms of Service - - - Privacy Policy - + About + Contact + Terms of Service + Privacy Policy diff --git a/apps/landing-page/components/common/Header/Header.tsx b/apps/landing-page/components/common/Header/Header.tsx index 290ec63ca..680b30ab3 100755 --- a/apps/landing-page/components/common/Header/Header.tsx +++ b/apps/landing-page/components/common/Header/Header.tsx @@ -7,13 +7,13 @@ import { useColorModeValue as mode, useDisclosure, Box, + Link, } from '@chakra-ui/react' import { HamburgerIcon } from 'assets/icons' import { ChevronDownIcon } from 'assets/icons/ChevronDownIcon' import { CloseIcon } from 'assets/icons/CloseIcon' import { Logo } from 'assets/icons/Logo' import * as React from 'react' -import { NextChakraLink } from '../nextChakraAdapters/NextChakraLink' import { MobileMenu } from './MobileMenu' import { ResourcesMenu } from './ResourcesMenu' @@ -40,7 +40,7 @@ export const Header = () => { className="nav-content__mobile" color={mode('white', 'white')} > - + Typebot @@ -77,7 +77,7 @@ export const Header = () => {