import React from 'react' import PropTypes from 'prop-types' import { pour } from 'sigil-js' import * as ob from 'urbit-ob' import ReactSVGComponents from '../components/ReactSVGComponents' const isValidPatp = patp => { let isValid = false try { isValid = ob.isValidPatp(patp) } catch(err) { return isValid } return isValid } const ValidatedSigil = ({ className, children, style, color, patp, size, margin, displayPass, displayFailure, focussed, beenFocussed }) => { const colorStyle = styleSelector(displayPass, displayFailure, focussed); return (
{ isValidPatp(patp) ? pour({ patp: patp, renderer: ReactSVGComponents, size: size, colorway: colorStyle, margin: margin, }) :
} { children }
) } const styleSelector = (pass, fail, focus) => { if (fail === true) return ['#FFFFFF', '#F8C134']; if (pass === true) return ['#FFFFFF', '#2AA779']; if (focus === true) return ['#FFFFFF', '#4330FC']; return ['#FFFFFF', '#7F7F7F']; } ValidatedSigil.propTypes = { className: PropTypes.string, children: PropTypes.node, style: PropTypes.object, }; ValidatedSigil.defaultProps = { className: '', style: {}, }; export default ValidatedSigil;