Closes #993 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a detailed explanation page for the "Remember user" setting in the app documentation. - Introduced persistence of chat state across sessions, with options for local or session storage. - Enhanced bot functionality to store and retrieve initial chat replies and manage bot open state with improved storage handling. - Added a new callback for chat state persistence to bot component props. - **Improvements** - Updated the general settings form to clarify the description of the "Remember user" feature. - Enhanced custom CSS handling and progress value persistence in bot components. - Added conditional transition disabling in various components for smoother user experiences. - Simplified the handling of `onTransitionEnd` across multiple bubble components. - **Refactor** - Renamed `inputIndex` to `chunkIndex` or `index` in various components for consistency. - Removed unused ESLint disable comments related to reactivity rules. - Adjusted import statements and cleaned up code across several files. - **Bug Fixes** - Fixed potential issues with undefined callbacks by introducing optional chaining in component props. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
24 lines
857 B
TypeScript
24 lines
857 B
TypeScript
import { initGoogleAnalytics } from '@/lib/gtag'
|
|
import { gtmBodyElement } from '@/lib/gtm'
|
|
import { initPixel } from '@/lib/pixel'
|
|
import {
|
|
injectCustomHeadCode,
|
|
isDefined,
|
|
isNotEmpty,
|
|
} from '@typebot.io/lib/utils'
|
|
import { StartPropsToInject } from '@typebot.io/schemas'
|
|
|
|
export const injectStartProps = async (
|
|
startPropsToInject: StartPropsToInject
|
|
) => {
|
|
const customHeadCode = startPropsToInject.customHeadCode
|
|
if (isNotEmpty(customHeadCode)) injectCustomHeadCode(customHeadCode)
|
|
const gtmId = startPropsToInject.gtmId
|
|
if (isNotEmpty(gtmId)) document.body.prepend(gtmBodyElement(gtmId))
|
|
const googleAnalyticsId = startPropsToInject.googleAnalyticsId
|
|
if (isNotEmpty(googleAnalyticsId))
|
|
await initGoogleAnalytics(googleAnalyticsId)
|
|
const pixelIds = startPropsToInject.pixelIds
|
|
if (isDefined(pixelIds)) initPixel(pixelIds)
|
|
}
|