2
0

(settings) Add a "disable responses saving" option

Closes #164
This commit is contained in:
Baptiste Arnaud
2022-11-16 16:17:42 +01:00
parent 0c3dcc522e
commit 473d315e0f
4 changed files with 31 additions and 2 deletions

View File

@ -46,6 +46,12 @@ export const GeneralSettingsForm = ({
isHideQueryParamsEnabled,
})
const handleDisableResultsSavingChange = (isResultSavingEnabled: boolean) =>
onGeneralSettingsChange({
...generalSettings,
isResultSavingEnabled: !isResultSavingEnabled,
})
return (
<Stack spacing={6}>
<ChangePlanModal
@ -90,6 +96,16 @@ export const GeneralSettingsForm = ({
onCheckChange={handleHideQueryParamsChange}
moreInfoContent="If your URL contains query params, they will be automatically hidden when the bot starts."
/>
<SwitchWithLabel
label="Disable responses saving"
initialValue={
isDefined(generalSettings.isResultSavingEnabled)
? !generalSettings.isResultSavingEnabled
: false
}
onCheckChange={handleDisableResultsSavingChange}
moreInfoContent="Prevent responses from being saved on Typebot. Chats limit usage will still be tracked."
/>
</Stack>
)
}

View File

@ -23,6 +23,11 @@ test.describe.parallel('Settings page', () => {
).toBeHidden()
await page.click('text="Remember session"')
await expect(
page.locator('input[type="checkbox"] >> nth=-3')
).toHaveAttribute('checked', '')
await page.click('text="Disable responses saving"')
await expect(
page.locator('input[type="checkbox"] >> nth=-1')
).toHaveAttribute('checked', '')

View File

@ -99,6 +99,8 @@ export const TypebotPage = ({
const sendNewVariables =
(resultId: string) => async (variables: VariableWithValue[]) => {
if (publishedTypebot.settings.general.isResultSavingEnabled === false)
return
const { error } = await updateResultQuery(resultId, { variables })
if (error) setError(error)
}
@ -107,8 +109,10 @@ export const TypebotPage = ({
answer: Answer & { uploadedFiles: boolean }
) => {
if (!resultId) return setError(new Error('Error: result was not created'))
if (publishedTypebot.settings.general.isResultSavingEnabled !== false) {
const { error } = await upsertAnswerQuery({ ...answer, resultId })
if (error) setError(error)
}
if (chatStarted) return
updateResultQuery(resultId, {
hasStarted: true,
@ -116,6 +120,8 @@ export const TypebotPage = ({
}
const handleCompleted = async () => {
if (publishedTypebot.settings.general.isResultSavingEnabled === false)
return
if (!resultId) return setError(new Error('Error: result was not created'))
const { error } = await updateResultQuery(resultId, { isCompleted: true })
if (error) setError(error)

View File

@ -6,6 +6,7 @@ const generalSettings = z.object({
isInputPrefillEnabled: z.boolean().optional(),
isHideQueryParamsEnabled: z.boolean().optional(),
isNewResultOnRefreshEnabled: z.boolean().optional(),
isResultSavingEnabled: z.boolean().optional(),
})
const typingEmulation = z.object({
@ -34,6 +35,7 @@ export const defaultSettings: Settings = {
isNewResultOnRefreshEnabled: false,
isInputPrefillEnabled: true,
isHideQueryParamsEnabled: true,
isResultSavingEnabled: true,
},
typingEmulation: { enabled: true, speed: 300, maxDelay: 1.5 },
metadata: {