Introduce bot v2 in builder (#328)

Also, the new engine is the default for updated typebots for viewer

Closes #211
This commit is contained in:
Baptiste Arnaud
2023-02-21 15:25:14 +01:00
committed by GitHub
parent 527dc8a5b1
commit debdac12ff
208 changed files with 4462 additions and 5236 deletions

View File

@@ -1,19 +1,12 @@
import { Seo } from '@/components/Seo'
import { TypebotHeader, useTypebot } from '@/features/editor'
import { Flex } from '@chakra-ui/react'
import { TypebotViewer } from 'bot-engine'
import { useMemo } from 'react'
import { Standard } from '@typebot.io/react'
import { getViewerUrl } from 'utils'
import { SettingsSideMenu } from './SettingsSideMenu'
import { parseTypebotToPublicTypebot } from '@/features/publish'
export const SettingsPage = () => {
const { typebot } = useTypebot()
const publicTypebot = useMemo(
() => (typebot ? parseTypebotToPublicTypebot(typebot) : undefined),
// eslint-disable-next-line react-hooks/exhaustive-deps
[typebot?.settings]
)
return (
<Flex overflow="hidden" h="100vh" flexDir="column">
@@ -21,10 +14,8 @@ export const SettingsPage = () => {
<TypebotHeader />
<Flex h="full" w="full">
<SettingsSideMenu />
<Flex flex="1" overflow="hidden">
{publicTypebot && (
<TypebotViewer apiHost={getViewerUrl()} typebot={publicTypebot} />
)}
<Flex flex="1">
{typebot && <Standard apiHost={getViewerUrl()} typebot={typebot} />}
</Flex>
</Flex>
</Flex>

View File

@@ -4,7 +4,6 @@ import { createId } from '@paralleldrive/cuid2'
import { defaultTextInputOptions } from 'models'
import { importTypebotInDatabase } from 'utils/playwright/databaseActions'
import { freeWorkspaceId } from 'utils/playwright/databaseSetup'
import { typebotViewer } from 'utils/playwright/testHelpers'
test.describe.parallel('Settings page', () => {
test.describe('General', () => {
@@ -15,12 +14,10 @@ test.describe.parallel('Settings page', () => {
})
await page.goto(`/typebots/${typebotId}/settings`)
await expect(
typebotViewer(page).locator('a:has-text("Made with Typebot")')
page.locator('a:has-text("Made with Typebot")')
).toHaveAttribute('href', 'https://www.typebot.io/?utm_source=litebadge')
await page.click('text="Typebot.io branding"')
await expect(
typebotViewer(page).locator('a:has-text("Made with Typebot")')
).toBeHidden()
await expect(page.locator('a:has-text("Made with Typebot")')).toBeHidden()
await page.click('text="Remember session"')
await expect(
@@ -32,13 +29,13 @@ test.describe.parallel('Settings page', () => {
page.locator('input[type="checkbox"] >> nth=-1')
).toHaveAttribute('checked', '')
await expect(
typebotViewer(page).locator('input[value="Baptiste"]')
).toBeVisible()
await expect(page.getByPlaceholder('Type your answer...')).toHaveValue(
'Baptiste'
)
await page.click('text=Prefill input')
await page.click('text=Theme')
await expect(
typebotViewer(page).locator(
page.locator(
`input[placeholder="${defaultTextInputOptions.labels.placeholder}"]`
)
).toHaveValue('')
@@ -53,7 +50,7 @@ test.describe.parallel('Settings page', () => {
})
await page.goto(`/typebots/${typebotId}/settings`)
await expect(
typebotViewer(page).locator('a:has-text("Made with Typebot")')
page.locator('a:has-text("Made with Typebot")')
).toHaveAttribute('href', 'https://www.typebot.io/?utm_source=litebadge')
await page.click('button:has-text("Typing emulation")')
await page.fill('[data-testid="speed"] input', '350')
@@ -74,7 +71,7 @@ test.describe.parallel('Settings page', () => {
})
await page.goto(`/typebots/${typebotId}/settings`)
await expect(
typebotViewer(page).locator(
page.locator(
`input[placeholder="${defaultTextInputOptions.labels.placeholder}"]`
)
).toHaveValue('Baptiste')
@@ -120,9 +117,7 @@ test.describe.parallel('Settings page', () => {
workspaceId: freeWorkspaceId,
})
await page.goto(`/typebots/${typebotId}/settings`)
await expect(
typebotViewer(page).locator('text="What\'s your name?"')
).toBeVisible()
await expect(page.locator('text="What\'s your name?"')).toBeVisible()
await expect(
page.locator('[data-testid="starter-lock-tag"]')
).toBeVisible()