You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
| import React from 'react';
 | |
| import styled from 'styled-components';
 | |
| import { assertUnreachable } from '../../types/sqlSharedTypes';
 | |
| import { SessionSettingCategory, SettingsViewProps } from './SessionSettings';
 | |
| 
 | |
| type Props = Pick<SettingsViewProps, 'category'>;
 | |
| 
 | |
| const StyledSettingsHeader = styled.div`
 | |
|   display: flex;
 | |
|   flex-direction: row;
 | |
|   justify-content: center;
 | |
|   align-items: center;
 | |
|   height: var(--main-view-header-height);
 | |
| `;
 | |
| 
 | |
| const StyledHeaderTittle = styled.div`
 | |
|   line-height: var(--main-view-header-height);
 | |
|   font-weight: bold;
 | |
|   font-size: var(--font-size-lg);
 | |
|   text-align: center;
 | |
|   flex-grow: 1;
 | |
| `;
 | |
| 
 | |
| export const SettingsHeader = (props: Props) => {
 | |
|   const { category } = props;
 | |
| 
 | |
|   let categoryTitle: string | null = null;
 | |
|   switch (category) {
 | |
|     case SessionSettingCategory.Appearance:
 | |
|       categoryTitle = window.i18n('appearanceSettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.Conversations:
 | |
|       categoryTitle = window.i18n('conversationsSettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.Notifications:
 | |
|       categoryTitle = window.i18n('notificationsSettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.Help:
 | |
|       categoryTitle = window.i18n('helpSettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.Permissions:
 | |
|       categoryTitle = window.i18n('permissionsSettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.Privacy:
 | |
|       categoryTitle = window.i18n('privacySettingsTitle');
 | |
|       break;
 | |
|     case SessionSettingCategory.ClearData:
 | |
|     case SessionSettingCategory.MessageRequests:
 | |
|     case SessionSettingCategory.RecoveryPhrase:
 | |
|       throw new Error(`no header for should be tried to be rendered for "${category}"`);
 | |
| 
 | |
|     default:
 | |
|       assertUnreachable(category, `SettingsHeader "${category}"`);
 | |
|   }
 | |
| 
 | |
|   return (
 | |
|     <StyledSettingsHeader>
 | |
|       <StyledHeaderTittle>{categoryTitle}</StyledHeaderTittle>
 | |
|     </StyledSettingsHeader>
 | |
|   );
 | |
| };
 |