diff options
Diffstat (limited to 'app_expo/components/icon')
-rw-r--r-- | app_expo/components/icon/icon.props.ts | 21 | ||||
-rw-r--r-- | app_expo/components/icon/icon.story.tsx | 19 | ||||
-rw-r--r-- | app_expo/components/icon/icon.tsx | 19 | ||||
-rw-r--r-- | app_expo/components/icon/icons/arrow-left.png | bin | 0 -> 329 bytes | |||
-rw-r--r-- | app_expo/components/icon/icons/[email protected] | bin | 0 -> 329 bytes | |||
-rw-r--r-- | app_expo/components/icon/icons/bullet.png | bin | 0 -> 204 bytes | |||
-rw-r--r-- | app_expo/components/icon/icons/[email protected] | bin | 0 -> 204 bytes | |||
-rw-r--r-- | app_expo/components/icon/icons/index.ts | 6 |
8 files changed, 65 insertions, 0 deletions
diff --git a/app_expo/components/icon/icon.props.ts b/app_expo/components/icon/icon.props.ts new file mode 100644 index 0000000..1f3ed2e --- /dev/null +++ b/app_expo/components/icon/icon.props.ts @@ -0,0 +1,21 @@ +import { ImageStyle, StyleProp, ViewStyle } from 'react-native' +import { IconTypes } from './icons' + +export interface IconProps { + /** + * Style overrides for the icon image + */ + style?: StyleProp<ImageStyle> + + /** + * Style overrides for the icon container + */ + + containerStyle?: StyleProp<ViewStyle> + + /** + * The name of the icon + */ + + icon?: IconTypes +} diff --git a/app_expo/components/icon/icon.story.tsx b/app_expo/components/icon/icon.story.tsx new file mode 100644 index 0000000..31c8499 --- /dev/null +++ b/app_expo/components/icon/icon.story.tsx @@ -0,0 +1,19 @@ +import * as React from 'react' +import { storiesOf } from '@storybook/react-native' +import { StoryScreen, Story, UseCase } from '../../../storybook/views' +import { Icon } from './icon' + +declare let module + +storiesOf('Icon', module) + .addDecorator((fn) => <StoryScreen>{fn()}</StoryScreen>) + .add('Names', () => ( + <Story> + <UseCase text="back" usage="The icon for going back"> + <Icon icon="back" /> + </UseCase> + <UseCase text="bullet" usage="The icon for a bullet point"> + <Icon icon="bullet" /> + </UseCase> + </Story> + )) diff --git a/app_expo/components/icon/icon.tsx b/app_expo/components/icon/icon.tsx new file mode 100644 index 0000000..f596bb2 --- /dev/null +++ b/app_expo/components/icon/icon.tsx @@ -0,0 +1,19 @@ +import * as React from 'react' +import { View, ImageStyle } from 'react-native' +import { AutoImage as Image } from '../auto-image/auto-image' +import { IconProps } from './icon.props' +import { icons } from './icons' + +const ROOT: ImageStyle = { + resizeMode: 'contain', +} + +export function Icon(props: IconProps) { + const { style: styleOverride, icon, containerStyle } = props + + return ( + <View style={containerStyle}> + <Image style={[ROOT, styleOverride]} source={icons[icon]} /> + </View> + ) +} diff --git a/app_expo/components/icon/icons/arrow-left.png b/app_expo/components/icon/icons/arrow-left.png Binary files differnew file mode 100644 index 0000000..9d607d7 --- /dev/null +++ b/app_expo/components/icon/icons/arrow-left.png diff --git a/app_expo/components/icon/icons/[email protected] b/app_expo/components/icon/icons/[email protected] Binary files differnew file mode 100644 index 0000000..9d607d7 --- /dev/null +++ b/app_expo/components/icon/icons/[email protected] diff --git a/app_expo/components/icon/icons/bullet.png b/app_expo/components/icon/icons/bullet.png Binary files differnew file mode 100644 index 0000000..8fc256f --- /dev/null +++ b/app_expo/components/icon/icons/bullet.png diff --git a/app_expo/components/icon/icons/[email protected] b/app_expo/components/icon/icons/[email protected] Binary files differnew file mode 100644 index 0000000..8fc256f --- /dev/null +++ b/app_expo/components/icon/icons/[email protected] diff --git a/app_expo/components/icon/icons/index.ts b/app_expo/components/icon/icons/index.ts new file mode 100644 index 0000000..792e408 --- /dev/null +++ b/app_expo/components/icon/icons/index.ts @@ -0,0 +1,6 @@ +export const icons = { + back: require('./arrow-left.png'), + bullet: require('./bullet.png'), +} + +export type IconTypes = keyof typeof icons |