diff options
author | Kirill Rogovoy <[email protected]> | 2021-07-20 21:24:52 +0300 |
---|---|---|
committer | Kirill Rogovoy <[email protected]> | 2021-07-20 21:24:52 +0300 |
commit | 5f4611d65e40eae3ca6191a15f68d69ea5a1c4cb (patch) | |
tree | 273dfc086444533d86d580961c92ba8d14781a67 /app/components/header | |
parent | f0bf4e7afdcd8b02a62be45ab3e7d047ed865a79 (diff) |
WIP
Diffstat (limited to 'app/components/header')
-rw-r--r-- | app/components/header/header.props.ts | 45 | ||||
-rw-r--r-- | app/components/header/header.story.tsx | 43 | ||||
-rw-r--r-- | app/components/header/header.tsx | 61 |
3 files changed, 0 insertions, 149 deletions
diff --git a/app/components/header/header.props.ts b/app/components/header/header.props.ts deleted file mode 100644 index f142656..0000000 --- a/app/components/header/header.props.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { StyleProp, TextStyle, ViewStyle } from 'react-native' -import { IconTypes } from '../icon/icons' -import { TxKeyPath } from '../../i18n' - -export interface HeaderProps { - /** - * Main header, e.g. POWERED BY IGNITE - */ - headerTx?: TxKeyPath - - /** - * header non-i18n - */ - headerText?: string - - /** - * Icon that should appear on the left - */ - leftIcon?: IconTypes - - /** - * What happens when you press the left icon - */ - onLeftPress?(): void - - /** - * Icon that should appear on the right - */ - rightIcon?: IconTypes - - /** - * What happens when you press the right icon - */ - onRightPress?(): void - - /** - * Container style overrides. - */ - style?: StyleProp<ViewStyle> - - /** - * Title style overrides. - */ - titleStyle?: StyleProp<TextStyle> -} diff --git a/app/components/header/header.story.tsx b/app/components/header/header.story.tsx deleted file mode 100644 index db87b89..0000000 --- a/app/components/header/header.story.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import * as React from 'react' -import { View, Alert } from 'react-native' -import { storiesOf } from '@storybook/react-native' -import { StoryScreen, Story, UseCase } from '../../../storybook/views' -import { Header } from './header' -import { color } from '../../theme' - -declare let module - -const VIEWSTYLE = { - flex: 1, - backgroundColor: color.storybookDarkBg, -} - -storiesOf('Header', module) - .addDecorator((fn) => <StoryScreen>{fn()}</StoryScreen>) - .add('Behavior', () => ( - <Story> - <UseCase noPad text="default" usage="The default usage"> - <View style={VIEWSTYLE}> - <Header headerTx="demoScreen.howTo" /> - </View> - </UseCase> - <UseCase noPad text="leftIcon" usage="A left nav icon"> - <View style={VIEWSTYLE}> - <Header - headerTx="demoScreen.howTo" - leftIcon="back" - onLeftPress={() => Alert.alert('left nav')} - /> - </View> - </UseCase> - <UseCase noPad text="rightIcon" usage="A right nav icon"> - <View style={VIEWSTYLE}> - <Header - headerTx="demoScreen.howTo" - rightIcon="bullet" - onRightPress={() => Alert.alert('right nav')} - /> - </View> - </UseCase> - </Story> - )) diff --git a/app/components/header/header.tsx b/app/components/header/header.tsx deleted file mode 100644 index 25e0914..0000000 --- a/app/components/header/header.tsx +++ /dev/null @@ -1,61 +0,0 @@ -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 ( - <View style={[ROOT, style]}> - {leftIcon ? ( - <Button preset="link" onPress={onLeftPress}> - <Icon icon={leftIcon} /> - </Button> - ) : ( - <View style={LEFT} /> - )} - <View style={TITLE_MIDDLE}> - <Text style={[TITLE, titleStyle]} text={header} /> - </View> - {rightIcon ? ( - <Button preset="link" onPress={onRightPress}> - <Icon icon={rightIcon} /> - </Button> - ) : ( - <View style={RIGHT} /> - )} - </View> - ) -} |