summaryrefslogtreecommitdiff
path: root/app_expo/components/icon
diff options
context:
space:
mode:
Diffstat (limited to 'app_expo/components/icon')
-rw-r--r--app_expo/components/icon/icon.props.ts21
-rw-r--r--app_expo/components/icon/icon.story.tsx19
-rw-r--r--app_expo/components/icon/icon.tsx19
-rw-r--r--app_expo/components/icon/icons/arrow-left.pngbin0 -> 329 bytes
-rw-r--r--app_expo/components/icon/icons/[email protected]bin0 -> 329 bytes
-rw-r--r--app_expo/components/icon/icons/bullet.pngbin0 -> 204 bytes
-rw-r--r--app_expo/components/icon/icons/[email protected]bin0 -> 204 bytes
-rw-r--r--app_expo/components/icon/icons/index.ts6
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
new file mode 100644
index 0000000..9d607d7
--- /dev/null
+++ b/app_expo/components/icon/icons/arrow-left.png
Binary files differ
diff --git a/app_expo/components/icon/icons/[email protected] b/app_expo/components/icon/icons/[email protected]
new file mode 100644
index 0000000..9d607d7
--- /dev/null
+++ b/app_expo/components/icon/icons/[email protected]
Binary files differ
diff --git a/app_expo/components/icon/icons/bullet.png b/app_expo/components/icon/icons/bullet.png
new file mode 100644
index 0000000..8fc256f
--- /dev/null
+++ b/app_expo/components/icon/icons/bullet.png
Binary files differ
diff --git a/app_expo/components/icon/icons/[email protected] b/app_expo/components/icon/icons/[email protected]
new file mode 100644
index 0000000..8fc256f
--- /dev/null
+++ b/app_expo/components/icon/icons/[email protected]
Binary files differ
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