react-ionicons
Version:
A React SVG ionicon component
82 lines (64 loc) • 4.24 kB
JavaScript
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import SVG from './SVG'
class LogoTux extends Component {
constructor(props) {
super(props)
this.state = {classNames: [], animationActive: false}
this._getClasses = this._getClasses.bind(this)
}
render() {
const style = {
...this.props.style,
color: this.props.color,
fontSize: this.props.fontSize,
}
return (
<SVG
style={this.props.style}
className={this._getClasses()}
fill={this.props.color}
width={this.props.fontSize}
height={this.props.fontSize}
viewBox="0 0 1024 1024"
onClick={this.props.onClick}
rotate={this.props.rotate ? 1 : 0}
shake={this.props.shake ? 1 : 0}
beat={this.props.beat ? 1 : 0}
>
<path d="M852.6 792c-13.4-8-26.4-22-24-37.6 4.6-30.6 5-43-0.4-51.6-3.8-6.4-11-10-17.2-11.6 4-5 6.2-10.8 7.6-21.8 2.6-20-9.4-82-25.4-131.4s-59.8-100-89.4-136c-52-63.6-45.6-78.4-52.6-199.4-4.4-77-38.6-138.6-139.2-138.6s-134 64-134 118c0 57.4 4 102 4 102 2.6 66.8 2 78.8-16 110.6-9.8 17.4-54 60-71.4 89.4s-15.2 59-49.2 105.6c-24.8 34-27.6 56.8-19.4 88-14 16.4-7.2 39.8-10 49.8-5.2 17.4-27.4 20.6-44.6 22s-30.6 0-37.4 10.6 1.4 32 8.6 60-14.6 30-14.6 62 60 32 119.4 45.4 81.4 32.6 112 32.6 53.6-20.4 76-38.6c14.4-11.8 58-7.4 84.6-7.4s68.6-1.2 91.4 4.8 22.6 41.2 78.6 41.2 69.4-41.4 122-68.6 84-40 84-59.4-30-32-43.4-40zM399.6 903c-2.6 26-25.2 34.2-48.2 32.2-26-2.2-58-15.2-88.2-24.2s-71-15-98-19.8c-30.6-5.4 0-27.2-0.4-68.4-0.2-16-14.2-38.8-8.4-49.4s34.6-4.8 44.6-7.6 25.4-11.4 30.6-23.8c2.8-6.8 3.6-35.4 5.8-45.6 2.2-9.8 15.8-14.4 44.4 0.2s57.8 76.2 84.6 119.6 35.8 60.8 33.2 86.8zM636.6 771.4c4 20.6 6.4 49 1.4 72.6s-14 31-21.4 46c-4.4-13.6 10.6-27.6 8.8-61.6-1-19-1.6-15.6-23 3.6-24.4 21.6-55.2 40.2-106 45-42 4-65-16.6-65-16.6 10 32-8.6 49.4-8.6 49.4 0.6-7.4 1.6-28.6-5-43.2-8-18-18.6-37.4-18.6-37.4s17.2-5.4 23.2-20 4-34.6-17.4-55.4-105-75.2-111.8-84.2c-9.8-13-13.4-20.4-14-46.4s10.8-49.6 8.6-40.6c-1.6 6.4 0.2 13.6 0.2 39.6s15.2 46.6 27.8 50c19 5.2 4-52.2 16-106.2s23.4-65.6 38.4-87.6 38.4-41 34-86.2-0.2-40.2 10.2-23.6c8 13 26.6 48 49.4 44 38.8-6.6 87.8-49.2 95.2-56.4s1.4-14.2-4.6-11.6c-31 13.4-88.6 43-103 36.4s-36.2-41.2-33.6-39c30.8 27.2 39.8 22.2 52.8 18 16.8-5.6 25.6-8.6 57-22.6s41.4-10.6 44.6-17.4-0.8-13.4-9.4-11.4c-12.8 3-6.8 10.2-45.4 24.6-50.6 19-66.6 20.6-88 6-17.2-11.8-30-25.4-30-33.4s16.6-16.6 24.6-22.6 24.6-21.8 24.6-21.8 2-14.4-1.2-25.4c-3.8-13-15.6-18.6-23.8-16.2-8.2 2.2-16 11-13.6 29.6 2 16.6 14 22 14 22s-5.4 7-10.4 9.4c0 0-1.6-0.6-7-12.6s-13.2-39-0.6-62.2 39.2-10.4 47.6 7.6c7.8 16.6 4.8 45.4 4.8 45.4 12-4.4 26-4 42 7-14.2-59.6 19-82.2 44-82.2s44.6 19.2 44.6 50c0 24-7 36.4-13.8 44-8.2-1-16.4-3-12.6-6.8 2.6-2.8 8.8-11.4 8.8-26.4s-11.8-27.4-27.4-27.4c-18.4 0-25.2 16.6-27.4 26s-0.8 17.2-0.4 20.8c1.2 10 21.8 19.2 47.8 25.8s22.6 18 16.6 50.6 12.6 36.6 28.6 67.6 11.4 43.6 31.8 70.4 38 95.6 32.8 153.6c-1.8 21-7.8 20.4 14.6 13.4 11.2-3.4 24-5.4 24-5.4 6.2-12.6 6.8-32.6 7-44.6 0.4-27 1.4-83-53.4-143 0 0 59 43.4 68 124 5 44.6-4 64.8-4 64.8 10.6 2.6 19.6 14.6 25.2 23.6 7.4 12.2-7.8-11.6-40-11.6-17 0-30.6 7.8-37 15.8s-6.2 15.2-6.4 23.4c-14.2-2.4-24.8 0-33.6 9.8-11.2 14-5.6 48.4-1.6 69.2zM816.8 865.8c-48.2 20.8-65.4 47-95.4 63s-55.4 4.6-67.4-16 20.8-56.4 9.4-119.2c-8.8-48.4-12.6-62-9.8-73.6 2.8-11 18.8-8.8 23-7.8 2.6 10.8 13.4 39 54 39 0 0 46.4 5.2 65.4-42.4 0 0 11.4-0.4 14.4 7 4.6 11.6-5.8 33-5.6 42.6 0.6 31.4 23.4 42.2 56.8 64 16.4 11.2 4.2 22.2-44.8 43.4z"></path>
</SVG>
)
}
_getClasses() {
return [...this.state.classNames, this.props.className].join(' ')
}
_getPathByIconName() {
let icon = icons.find(icon => icon.tags[0] === this.props.icon)
if (icon) return icon.paths.join(' ')
return ''
}
}
LogoTux.defaultProps = {
// style
style: {},
color: '#000000',
fontSize: '22px',
// animation
shake: false,
beat: false,
rotate: false,
}
LogoTux.propTypes = {
// style
style: PropTypes.object,
color: PropTypes.string,
fontSize: PropTypes.string,
// animation
shake: PropTypes.bool,
beat: PropTypes.bool,
rotate: PropTypes.bool,
// functions
onClick: PropTypes.func
}
export default LogoTux