@@ -6,6 +6,7 @@ import Instabug, {
66  InvocationEvent , 
77  Locale , 
88  NetworkLogger , 
9+   WelcomeMessageMode , 
910  ReproStepsMode , 
1011}  from  'instabug-reactnative' ; 
1112import  {  InputGroup ,  InputLeftAddon ,  useToast ,  VStack ,  Button  }  from  'native-base' ; 
@@ -30,12 +31,19 @@ export const SettingsScreen: React.FC<NativeStackScreenProps<HomeStackParamList,
3031  const  [ userID ,  setUserID ]  =  useState ( '' ) ; 
3132  const  [ userAttributeKey ,  setUserAttributeKey ]  =  useState ( '' ) ; 
3233  const  [ userAttributeValue ,  setUserAttributeValue ]  =  useState ( '' ) ; 
34+   const  [ userData ,  setUserData ]  =  useState ( '' ) 
35+   const  [ userEvent ,  setUserEvent ]  =  useState ( '' ) 
36+   const  [ tag ,  setTag ]  =  useState ( '' ) 
3337  const  [ featureFlagName ,  setFeatureFlagName ]  =  useState ( '' ) ; 
3438  const  [ featureFlagVariant ,  setfeatureFlagVariant ]  =  useState ( '' ) ; 
3539  const  [ isUserStepEnabled ,  setIsUserStepEnabled ]  =  useState < boolean > ( true ) ; 
40+   const  [ isSessionProfilerEnabled ,  setIsSessionProfilerEnabled ]  =  useState < boolean > ( true ) ; 
3641
3742  const  toast  =  useToast ( ) ; 
3843  const  [ userAttributesFormError ,  setUserAttributesFormError ]  =  useState < any > ( { } ) ; 
44+   const  [ userDataFormError ,  setUserDataFormError ]  =  useState < any > ( { } ) 
45+   const  [ userEventFormError ,  setUserEventFormError ]  =  useState < any > ( { } ) 
46+   const  [ tagFormError ,  setTagFormError ]  =  useState < any > ( { } ) 
3947  const  [ featureFlagFormError ,  setFeatureFlagFormError ]  =  useState < any > ( { } ) ; 
4048  const  {  addItem }  =  useCallbackHandlers ( ) ; 
4149
@@ -50,6 +58,30 @@ export const SettingsScreen: React.FC<NativeStackScreenProps<HomeStackParamList,
5058    setUserAttributesFormError ( errors ) ; 
5159    return  Object . keys ( errors ) . length  ===  0 ; 
5260  } ; 
61+   const  validateUserDataForm  =  ( )  =>  { 
62+     const  errors : any  =  { } ; 
63+     if  ( userData . length  ===  0 )  { 
64+       errors . userDataValue  =  'Value is required' ; 
65+     } 
66+     setUserDataFormError ( errors ) ; 
67+     return  Object . keys ( errors ) . length  ===  0 ; 
68+   } ; 
69+   const  validateUserEventForm  =  ( )  =>  { 
70+     const  errors : any  =  { } ; 
71+     if  ( userData . length  ===  0 )  { 
72+       errors . userEventValue  =  'Value is required' ; 
73+     } 
74+     setUserEventFormError ( errors ) ; 
75+     return  Object . keys ( errors ) . length  ===  0 ; 
76+   } ; 
77+   const  validateTagForm  =  ( )  =>  { 
78+     const  errors : any  =  { } ; 
79+     if  ( userData . length  ===  0 )  { 
80+       errors . tagValue  =  'Value is required' ; 
81+     } 
82+     setTagFormError ( errors ) ; 
83+     return  Object . keys ( errors ) . length  ===  0 ; 
84+   } ; 
5385  const  validateFeatureFlagForm  =  ( )  =>  { 
5486    const  errors : any  =  { } ; 
5587    if  ( featureFlagName . length  ===  0 )  { 
@@ -89,6 +121,35 @@ export const SettingsScreen: React.FC<NativeStackScreenProps<HomeStackParamList,
89121      setUserAttributeValue ( '' ) ; 
90122    } 
91123  } ; 
124+ 
125+   const  saveUserData  =  ( )  =>  { 
126+     if  ( validateUserDataForm ( ) )  { 
127+       Instabug . setUserData ( userData ) ; 
128+       toast . show ( { 
129+         description : 'User Data added successfully' , 
130+       } ) ; 
131+       setUserData ( '' ) 
132+     } 
133+   } ; 
134+   const  saveUserEvent  =  ( )  =>  { 
135+     if  ( validateUserEventForm ( ) )  { 
136+       Instabug . logUserEvent ( userEvent ) ; 
137+       toast . show ( { 
138+         description : 'User Event added successfully' , 
139+       } ) ; 
140+       setUserData ( '' ) 
141+     } 
142+   } ; 
143+   const  saveTag  =  ( )  =>  { 
144+     if  ( validateTagForm ( ) )  { 
145+       Instabug . appendTags ( [ tag ] ) 
146+       toast . show ( { 
147+         description : 'Tag added successfully' , 
148+       } ) ; 
149+       setTag ( '' ) 
150+     } 
151+   } ; 
152+   
92153  const  saveFeatureFlags  =  ( )  =>  { 
93154    if  ( validateFeatureFlagForm ( ) )  { 
94155      Instabug . addFeatureFlag ( { 
@@ -250,6 +311,31 @@ export const SettingsScreen: React.FC<NativeStackScreenProps<HomeStackParamList,
250311            Instabug . removeExperiments ( [ 'exp1' ,  'exp2' ] ) ; 
251312          } } 
252313        /> 
314+             
315+             < ListTile 
316+           title = "Session Profiler" 
317+           subtitle = { isSessionProfilerEnabled  ? 'Enabled'  : 'Disabled' } 
318+           onPress = { ( )  =>  { 
319+             navigation . navigate ( 'SessionProfiler' ,  { 
320+               isEnabled : isSessionProfilerEnabled , 
321+               setIsEnabled : ( enabled : boolean )  =>  { 
322+                 setIsSessionProfilerEnabled ( enabled ) ; 
323+                 Instabug . setSessionProfilerEnabled ( enabled ) ; 
324+                 navigation . goBack ( ) ; 
325+               } , 
326+             } ) ; 
327+           } } 
328+           testID = "id_session_profiler" 
329+         /> 
330+ 
331+         < ListTile 
332+           title = "Welcome message Beta" 
333+           onPress = { ( )  =>  Instabug . showWelcomeMessage ( WelcomeMessageMode . beta ) } 
334+         /> 
335+         < ListTile 
336+           title = "Welcome message Live" 
337+           onPress = { ( )  =>  Instabug . showWelcomeMessage ( WelcomeMessageMode . live ) } 
338+         /> 
253339
254340        < VerticalListTile  title = "User Identification" > 
255341          < VStack > 
@@ -316,6 +402,60 @@ export const SettingsScreen: React.FC<NativeStackScreenProps<HomeStackParamList,
316402            </ Button > 
317403          </ VStack > 
318404        </ VerticalListTile > 
405+         < VerticalListTile  title = "User Data" > 
406+           < VStack > 
407+             < View  style = { styles . formContainer } > 
408+               < View  style = { styles . inputWrapper } > 
409+                 < InputField 
410+                   placeholder = "User data" 
411+                   onChangeText = { ( userData )  =>  setUserData ( userData ) } 
412+                   value = { userData } 
413+                   errorText = { userDataFormError . userDataValue } 
414+                 /> 
415+               </ View > 
416+             </ View > 
417+ 
418+             < Button  mt = "4"  onPress = { saveUserData } > 
419+               Save user data
420+             </ Button > 
421+           </ VStack > 
422+         </ VerticalListTile > 
423+         < VerticalListTile  title = "User Event" > 
424+           < VStack > 
425+             < View  style = { styles . formContainer } > 
426+               < View  style = { styles . inputWrapper } > 
427+                 < InputField 
428+                   placeholder = "User event" 
429+                   onChangeText = { ( userEvent )  =>  setUserEvent ( userEvent ) } 
430+                   value = { userEvent } 
431+                   errorText = { userEventFormError . userEventValue } 
432+                 /> 
433+               </ View > 
434+             </ View > 
435+ 
436+             < Button  mt = "4"  onPress = { saveUserEvent } > 
437+               Save user event
438+             </ Button > 
439+           </ VStack > 
440+         </ VerticalListTile > 
441+         < VerticalListTile  title = "Tags" > 
442+           < VStack > 
443+             < View  style = { styles . formContainer } > 
444+               < View  style = { styles . inputWrapper } > 
445+                 < InputField 
446+                   placeholder = "tag" 
447+                   onChangeText = { ( tag )  =>  setTag ( tag ) } 
448+                   value = { tag } 
449+                   errorText = { tagFormError . tagValue } 
450+                 /> 
451+               </ View > 
452+             </ View > 
453+ 
454+             < Button  mt = "4"  onPress = { saveTag } > 
455+               Save tag
456+             </ Button > 
457+           </ VStack > 
458+         </ VerticalListTile > 
319459        < VerticalListTile  title = "Support varient" > 
320460          < VStack > 
321461            < View  style = { styles . formContainer } > 
0 commit comments