@@ -13,9 +13,32 @@ import settingsMenu from "./settings-menu";
13
13
14
14
export default function Notifications ( ) {
15
15
const { user, setUser } = useContext ( UserContext ) ;
16
+ const [ isOnboardingMail , setOnboardingMail ] = useState ( ! ! user ?. additionalData ?. emailNotificationSettings ?. allowsOnboardingMail ) ;
16
17
const [ isChangelogMail , setChangelogMail ] = useState ( ! ! user ?. additionalData ?. emailNotificationSettings ?. allowsChangelogMail ) ;
17
18
const [ isDevXMail , setDevXMail ] = useState ( ! ! user ?. additionalData ?. emailNotificationSettings ?. allowsDevXMail ) ;
18
19
20
+ const toggleOnboardingMail = async ( ) => {
21
+ if ( user && user . additionalData && user . additionalData . emailNotificationSettings ) {
22
+ const newIsOnboardingMail = ! isOnboardingMail ;
23
+ user . additionalData . emailNotificationSettings . allowsOnboardingMail = newIsOnboardingMail ;
24
+ await getGitpodService ( ) . server . updateLoggedInUser ( {
25
+ additionalData : {
26
+ ...user . additionalData ,
27
+ emailNotificationSettings : {
28
+ ...user . additionalData . emailNotificationSettings ,
29
+ allowsOnboardingMail : newIsOnboardingMail
30
+ }
31
+ }
32
+ } ) ;
33
+ await getGitpodService ( ) . server . trackEvent ( {
34
+ event : "notification_change" ,
35
+ properties : { "unsubscribed_onboarding" : ! newIsOnboardingMail }
36
+ } )
37
+ setUser ( user ) ;
38
+ setOnboardingMail ( newIsOnboardingMail ) ;
39
+ }
40
+ }
41
+
19
42
const toggleChangelogMail = async ( ) => {
20
43
if ( user && user . additionalData && user . additionalData . emailNotificationSettings ) {
21
44
const newIsChangelogMail = ! isChangelogMail ;
@@ -69,6 +92,11 @@ export default function Notifications() {
69
92
desc = "Receive essential emails about changes to your account"
70
93
checked = { true }
71
94
disabled = { true } />
95
+ < CheckBox
96
+ title = "Onboarding guide"
97
+ desc = "In the first weeks after you sign up, we'll guide you through the product, so you can get the most out of it"
98
+ checked = { isOnboardingMail }
99
+ onChange = { toggleOnboardingMail } />
72
100
< CheckBox
73
101
title = "Changelog"
74
102
desc = "Be the first to learn about new features and overall product improvements"
0 commit comments