@@ -28,6 +28,7 @@ import type {
2828 AppParamsStrings ,
2929 PreviewThresholdParams ,
3030 PrivacyBannerLayoutParams ,
31+ SessionClassEmailUsParams ,
3132 TemplatesParams ,
3233 UploadThresholdParams ,
3334} from "./appParams.types" ;
@@ -79,6 +80,7 @@ export function validatedAppParams(params: unknown): AppParams {
7980 const PRIVACY_BANNER_LAYOUT = validatePrivacyBannerLayout ( params_ ) ;
8081 const TEMPLATES = validateTemplates ( params_ ) ;
8182 const UPLOAD_THRESHOLD = validateUploadThreshold ( params_ ) ;
83+ const SESSION_CLASS_EMAIL_US = validateSessionClassEmailUs ( params_ ) ;
8284
8385 return {
8486 ANONYMOUS_SESSIONS ,
@@ -98,6 +100,7 @@ export function validatedAppParams(params: unknown): AppParams {
98100 SENTRY_NAMESPACE ,
99101 SENTRY_SAMPLE_RATE ,
100102 SENTRY_URL ,
103+ SESSION_CLASS_EMAIL_US ,
101104 STATUSPAGE_ID ,
102105 TEMPLATES ,
103106 UISERVER_URL ,
@@ -302,3 +305,41 @@ function validateUploadThreshold(params: RawAppParams): UploadThresholdParams {
302305 : DEFAULT_APP_PARAMS [ "PREVIEW_THRESHOLD" ] . soft ;
303306 return { soft } ;
304307}
308+
309+ function validateSessionClassEmailUs (
310+ params : RawAppParams
311+ ) : SessionClassEmailUsParams {
312+ const value = params [ "SESSION_CLASS_EMAIL_US" ] ;
313+ if ( typeof value !== "object" || value == null ) {
314+ return DEFAULT_APP_PARAMS [ "SESSION_CLASS_EMAIL_US" ] ;
315+ }
316+
317+ const rawEmailUsParams = value as {
318+ [ key : string ] : unknown ;
319+ } ;
320+
321+ const enabled = ! ! rawEmailUsParams . enabled ;
322+
323+ const to = typeof rawEmailUsParams . to === "string" ? rawEmailUsParams . to : "" ;
324+
325+ const subject =
326+ typeof rawEmailUsParams . subject === "string"
327+ ? rawEmailUsParams . subject
328+ : "" ;
329+
330+ const body =
331+ typeof rawEmailUsParams . body === "string" ? rawEmailUsParams . body : "" ;
332+
333+ if ( enabled && to ) {
334+ return {
335+ enabled,
336+ email : {
337+ to,
338+ subject,
339+ body,
340+ } ,
341+ } ;
342+ }
343+
344+ return DEFAULT_APP_PARAMS [ "SESSION_CLASS_EMAIL_US" ] ;
345+ }
0 commit comments