From 5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb Mon Sep 17 00:00:00 2001 From: Kirill Rogovoy Date: Tue, 20 Jul 2021 21:24:52 +0300 Subject: WIP --- app_expo/components/header/header.tsx | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 app_expo/components/header/header.tsx (limited to 'app_expo/components/header/header.tsx') diff --git a/app_expo/components/header/header.tsx b/app_expo/components/header/header.tsx new file mode 100644 index 0000000..25e0914 --- /dev/null +++ b/app_expo/components/header/header.tsx @@ -0,0 +1,61 @@ +import React from 'react' +import { View, ViewStyle, TextStyle } from 'react-native' +import { HeaderProps } from './header.props' +import { Button } from '../button/button' +import { Text } from '../text/text' +import { Icon } from '../icon/icon' +import { spacing } from '../../theme' +import { translate } from '../../i18n/' + +// static styles +const ROOT: ViewStyle = { + flexDirection: 'row', + paddingHorizontal: spacing[4], + alignItems: 'center', + paddingTop: spacing[5], + paddingBottom: spacing[5], + justifyContent: 'flex-start', +} +const TITLE: TextStyle = { textAlign: 'center' } +const TITLE_MIDDLE: ViewStyle = { flex: 1, justifyContent: 'center' } +const LEFT: ViewStyle = { width: 32 } +const RIGHT: ViewStyle = { width: 32 } + +/** + * Header that appears on many screens. Will hold navigation buttons and screen title. + */ +export function Header(props: HeaderProps) { + const { + onLeftPress, + onRightPress, + rightIcon, + leftIcon, + headerText, + headerTx, + style, + titleStyle, + } = props + const header = headerText || (headerTx && translate(headerTx)) || '' + + return ( + + {leftIcon ? ( + + ) : ( + + )} + + + + {rightIcon ? ( + + ) : ( + + )} + + ) +} -- cgit v1.2.3