Skip to content

Commit 44822e9

Browse files
chore: survey 10kb win (#1921)
1 parent 4c02b52 commit 44822e9

File tree

4 files changed

+15
-18
lines changed

4 files changed

+15
-18
lines changed

src/extensions/surveys/surveys-extension-utils.tsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
SurveySchedule,
1010
} from '../../posthog-surveys-types'
1111
import { document as _document, window as _window, userAgent } from '../../utils/globals'
12-
import { SURVEY_LOGGER as logger } from '../../utils/survey-utils'
12+
import { SURVEY_LOGGER as logger, SURVEY_SEEN_PREFIX } from '../../utils/survey-utils'
1313
import { prepareStylesheet } from '../utils/stylesheet-loader'
1414

1515
import { SurveyMatchType } from '../../posthog-surveys-types'
@@ -18,7 +18,6 @@ import { detectDeviceType } from '../../utils/user-agent-utils'
1818
// We cast the types here which is dangerous but protected by the top level generateSurveys call
1919
const window = _window as Window & typeof globalThis
2020
const document = _document as Document
21-
const SurveySeenPrefix = 'seenSurvey_'
2221

2322
export const SURVEY_DEFAULT_Z_INDEX = 2147483647
2423

@@ -700,26 +699,14 @@ export const getSurveySeen = (survey: Survey): boolean => {
700699
}
701700

702701
export const getSurveySeenKey = (survey: Survey): string => {
703-
let surveySeenKey = `${SurveySeenPrefix}${survey.id}`
702+
let surveySeenKey = `${SURVEY_SEEN_PREFIX}${survey.id}`
704703
if (survey.current_iteration && survey.current_iteration > 0) {
705-
surveySeenKey = `${SurveySeenPrefix}${survey.id}_${survey.current_iteration}`
704+
surveySeenKey = `${SURVEY_SEEN_PREFIX}${survey.id}_${survey.current_iteration}`
706705
}
707706

708707
return surveySeenKey
709708
}
710709

711-
export const getSurveySeenStorageKeys = (): string[] => {
712-
const surveyKeys = []
713-
for (let i = 0; i < localStorage.length; i++) {
714-
const key = localStorage.key(i)
715-
if (key?.startsWith(SurveySeenPrefix)) {
716-
surveyKeys.push(key)
717-
}
718-
}
719-
720-
return surveyKeys
721-
}
722-
723710
const getSurveyInteractionProperty = (survey: Survey, action: string): string => {
724711
let surveyProperty = `$survey_${action}/${survey.id}`
725712
if (survey.current_iteration && survey.current_iteration > 0) {

src/posthog-surveys-types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export interface Survey {
199199
current_iteration: number | null
200200
current_iteration_start_date: string | null
201201
schedule?: SurveySchedule | null
202+
enable_partial_responses?: boolean | null
202203
}
203204

204205
export interface SurveyActionType {

src/posthog-surveys.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { SURVEYS } from './constants'
22
import { SurveyManager } from './extensions/surveys'
3-
import { getSurveySeenStorageKeys } from './extensions/surveys/surveys-extension-utils'
43
import { PostHog } from './posthog-core'
54
import { Survey, SurveyCallback, SurveyRenderReason } from './posthog-surveys-types'
65
import { RemoteConfig } from './types'
@@ -11,6 +10,7 @@ import {
1110
doesSurveyActivateByEvent,
1211
isSurveyRunning,
1312
SURVEY_LOGGER as logger,
13+
SURVEY_SEEN_PREFIX,
1414
} from './utils/survey-utils'
1515
import { isArray, isNullish } from './utils/type-utils'
1616

@@ -44,7 +44,14 @@ export class PostHogSurveys {
4444

4545
reset(): void {
4646
localStorage.removeItem('lastSeenSurveyDate')
47-
const surveyKeys = getSurveySeenStorageKeys()
47+
const surveyKeys = []
48+
for (let i = 0; i < localStorage.length; i++) {
49+
const key = localStorage.key(i)
50+
if (key?.startsWith(SURVEY_SEEN_PREFIX)) {
51+
surveyKeys.push(key)
52+
}
53+
}
54+
4855
surveyKeys.forEach((key) => localStorage.removeItem(key))
4956
}
5057

src/utils/survey-utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ export function doesSurveyActivateByEvent(survey: Pick<Survey, 'conditions'>): b
1414
export function doesSurveyActivateByAction(survey: Pick<Survey, 'conditions'>): boolean {
1515
return !!survey.conditions?.actions?.values?.length
1616
}
17+
18+
export const SURVEY_SEEN_PREFIX = 'seenSurvey_'

0 commit comments

Comments
 (0)