Files
deighton-ar/mobile/src/ui/Icon.js
John Lyon-Smith 56db130612 Fix DAR-85
2018-04-14 14:44:26 -07:00

55 lines
1.5 KiB
JavaScript

import React, { Component } from "react"
import { Image, View } from "react-native"
import PropTypes from "prop-types"
const images = {
logout: require("./images/logout.png"),
glasses: require("./images/ar-glasses.png"),
back: require("./images/back.png"),
hand: require("./images/hand.png"),
center: require("./images/center.png"),
cancel: require("./images/cancel.png"),
rightArrow: require("./images/right-arrow.png"),
search: require("./images/search.png"),
settings: require("./images/settings.png"),
add: require("./images/add.png"),
done: require("./images/done.png"),
target: require("./images/target.png"),
pin: require("./images/pin.png"),
hardhat: require("./images/hardhat.png"),
clipboard: require("./images/clipboard.png"),
question: require("./images/question.png"),
}
export class Icon extends Component {
static propTypes = {
name: PropTypes.string.isRequired,
size: PropTypes.number,
margin: PropTypes.number,
style: PropTypes.object,
}
static defaultProps = {
size: 50,
margin: 0,
}
render() {
let { name, margin, style } = this.props
let size = this.props.size - margin * 2
let source = images[name]
if (!source) {
return <View style={{ width: size, height: size, margin }} />
} else {
return (
<Image
style={[{ width: size, height: size, margin }, style]}
source={source}
resizeMode="stretch"
/>
)
}
}
}