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()
+ })
+ })
})