import  React  from  'react' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  styled  from  'styled-components' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  SessionButton , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  SessionButtonColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SessionButtonShape , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  SessionButtonType , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  from  '../basic/SessionButton' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  {  SessionToggle  }  from  '../basic/SessionToggle' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  {  SessionConfirmDialogProps  }  from  '../dialog/SessionConfirm' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  SessionIconButton  }  from  '../icon' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  Noop  }  from  '../../types/Util' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								type  ButtonSettingsProps  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  title? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  description? : string ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  buttonColor? : SessionButtonColor ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  buttonType? : SessionButtonType ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  buttonShape? : SessionButtonShape ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  buttonText : string ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  dataTestId? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  onClick :  ( )  = >  void ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  StyledDescriptionSettingsItem  =  styled . div ` 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  font - family : var ( -- font - default ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  font - size : var ( -- font - size - sm ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  font - weight : 400 ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  max - width : 700px ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  StyledTitleSettingsItem  =  styled . div ` 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  line - height : 1.7 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  font - size : var ( -- font - size - lg ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  font - weight : bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  StyledInfo  =  styled . div ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  padding - inline - end : var ( -- margins - lg ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  StyledDescriptionContainer  =  styled ( StyledDescriptionSettingsItem ) ` 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  display : flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  align - items : center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  StyledSettingItem  =  styled . div ` 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  font - size : var ( -- font - size - md ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  padding : var ( -- margins - lg ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  margin - bottom : var ( -- margins - lg ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  background : var ( -- settings - tab - background - color ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  color : var ( -- settings - tab - text - color ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  border - top : 1px  solid  var ( -- border - color ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  border - bottom : 1px  solid  var ( -- border - color ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  StyledSettingItemInline  =  styled ( StyledSettingItem ) ` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  display : flex ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  align - items : center ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  justify - content : space - between ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  transition : var ( -- default - duration ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  StyledSettingItemClickable  =  styled ( StyledSettingItemInline ) ` 
  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  cursor : pointer ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  : hover  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    background : var ( -- settings - tab - background - hover - color ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  : active  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    background : var ( -- settings - tab - background - selected - color ) ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								` ;
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  SettingsTitleAndDescription  =  ( props :  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  title? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  description? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  childrenDescription? : React.ReactNode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  const  {  description ,  childrenDescription ,  title  }  =  props ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < StyledInfo > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      < StyledTitleSettingsItem > { title } < / StyledTitleSettingsItem > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      < StyledDescriptionContainer > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        { description  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          < StyledDescriptionSettingsItem > { description } < / StyledDescriptionSettingsItem > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        ) } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        < > { childrenDescription } < / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < / StyledDescriptionContainer > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < / StyledInfo > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  SessionSettingsItemWrapper  =  ( props :  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  inline : boolean ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  title? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  description? : string ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  children? : React.ReactNode ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  childrenDescription? : React.ReactNode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} )  = >  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  {  inline ,  children ,  description ,  title ,  childrenDescription  }  =  props ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  const  ComponentToRender  =  inline  ?  StyledSettingItemInline  : StyledSettingItem ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < ComponentToRender > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      < SettingsTitleAndDescription 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        title = { title } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        description = { description } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        childrenDescription = { childrenDescription } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      / > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      { children } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < / ComponentToRender > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  SessionSettingsTitleWithLink  =  ( props :  {  title : string ;  onClick : Noop  } )  = >  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  {  onClick ,  title  }  =  props ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < StyledSettingItemClickable  onClick = { onClick } > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < SettingsTitleAndDescription  title = { title }  / > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      < SessionIconButton  iconSize = { 'medium' }  iconType = "externalLink"  isSelected = { true }  / > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < / StyledSettingItemClickable > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  SessionToggleWithDescription  =  ( props :  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  title? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  description? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  active : boolean ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  onClickToggle :  ( )  = >  void ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  confirmationDialogParams? : SessionConfirmDialogProps ; 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  childrenDescription? : React.ReactNode ;  // if set, those elements will be appended next to description field (only used for typing message settings as of now)
 
							 
						 
					
						
							
								
									
										
										
											
												Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
											 
										 
										
											3 years ago 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  dataTestId? : string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} )  = >  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    title , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    description , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    active , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    onClickToggle , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    confirmationDialogParams , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    childrenDescription , 
							 
						 
					
						
							
								
									
										
										
											
												Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
											 
										 
										
											3 years ago 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    dataTestId , 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  }  =  props ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    < SessionSettingsItemWrapper 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      title = { title } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      description = { description } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      inline = { true } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      childrenDescription = { childrenDescription } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      < SessionToggle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        active = { active } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        onClick = { onClickToggle } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        confirmationDialogParams = { confirmationDialogParams } 
							 
						 
					
						
							
								
									
										
										
											
												Adds data-testid to loading-animation, microphone recording button, recording permissions button, stop recording button, consolidates tests into user actions test, adds media to fixtures folder, updates linked device tests with avatar change, username change and group tests. Adds tests for messaging, sending image, video, document, gif and link with preview. Also updates reply message functionality to wait for loading animation
											 
										 
										
											3 years ago 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        dataTestId = { dataTestId } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / SessionSettingsItemWrapper > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  SessionSettingButtonItem  =  ( props : ButtonSettingsProps )  = >  {  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  const  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    title , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    description , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    buttonColor , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    buttonType , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    buttonShape , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    buttonText , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dataTestId , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    onClick , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }  =  props ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < SessionSettingsItemWrapper  title = { title }  description = { description }  inline = { true } > 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      < SessionButton 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        dataTestId = { dataTestId } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        text = { buttonText } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        buttonColor = { buttonColor } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        buttonType = { buttonType } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								        buttonShape = { buttonShape } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        onClick = { onClick } 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								      / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    < / SessionSettingsItemWrapper > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;