diff --git a/apps/builder/components/account/SubscriptionTag.tsx b/apps/builder/components/account/SubscriptionTag.tsx index fcd72a1ec..012dc6289 100644 --- a/apps/builder/components/account/SubscriptionTag.tsx +++ b/apps/builder/components/account/SubscriptionTag.tsx @@ -13,7 +13,7 @@ export const SubscriptionTag = ({ plan }: { plan?: Plan }) => { return Offered } case Plan.PRO: { - return Pro plan + return Pro plan } default: { return Free plan diff --git a/apps/builder/components/settings/GeneralSettingsForm.tsx b/apps/builder/components/settings/GeneralSettingsForm.tsx index 2bea5cc4c..8e2587ddb 100644 --- a/apps/builder/components/settings/GeneralSettingsForm.tsx +++ b/apps/builder/components/settings/GeneralSettingsForm.tsx @@ -1,6 +1,16 @@ -import { Flex, FormLabel, Stack, Switch } from '@chakra-ui/react' +import { + Flex, + FormLabel, + Stack, + Switch, + Tag, + useDisclosure, +} from '@chakra-ui/react' +import { UpgradeModal } from 'components/shared/modals/UpgradeModal.' +import { useUser } from 'contexts/UserContext' import { GeneralSettings } from 'models' import React from 'react' +import { isFreePlan } from 'services/user' type Props = { generalSettings: GeneralSettings @@ -11,16 +21,27 @@ export const GeneralSettingsForm = ({ generalSettings, onGeneralSettingsChange, }: Props) => { - const handleSwitchChange = () => + const { isOpen, onOpen, onClose } = useDisclosure() + const { user } = useUser() + const isUserFreePlan = isFreePlan(user) + const handleSwitchChange = () => { + if (generalSettings?.isBrandingEnabled && isUserFreePlan) return onGeneralSettingsChange({ isBrandingEnabled: !generalSettings?.isBrandingEnabled, }) + } return ( - + + - Typebot.io branding + Typebot.io branding{' '} + {isUserFreePlan && Pro} { await page.fill('textarea#description', 'Lorem ipsum') }) }) + + test.describe('Free user', () => { + test.use({ + storageState: path.join(__dirname, '../freeUser.json'), + }) + test("can't remove branding", async ({ page }) => { + const typebotId = 'free-branding-typebot' + await importTypebotInDatabase( + path.join(__dirname, '../fixtures/typebots/theme.json'), + { + id: typebotId, + } + ) + await page.goto(`/typebots/${typebotId}/settings`) + await page.click('button:has-text("General")') + await expect(page.locator('text=Pro')).toBeVisible() + await page.click('text=Typebot.io branding') + await expect(page.locator('text=Upgrade now')).toBeVisible() + }) + }) })