Skip to content

Instantly share code, notes, and snippets.

import React from 'react';
const {PropTypes} = React;
const icons = {
'bin2': 'M192 1024h640l64-704h-768zM640 128v-128h-256v128h-320v192l64-64h768l64 64v-192h-320zM576 128h-128v-64h128v64z',
'facebook': 'M608 192h160v-192h-160c-123.514 0-224 100.486-224 224v96h-128v192h128v512h192v-512h160l32-192h-192v-96c0-17.346 14.654-32 32-32z',
};
const Icon = props => (
<svg width="22" height="22" viewBox="0 0 1024 1024">
export const ICONS = {
BUBBLE: 'M512 64c282.77 0 512 186.25 512 416 0 229.752-229.23 416-512 416-27.156 0-53.81-1.734-79.824-5.044-109.978 109.978-241.25 129.7-368.176 132.596v-26.916c68.536-33.578 128-94.74 128-164.636 0-9.754-0.758-19.33-2.164-28.696-115.796-76.264-189.836-192.754-189.836-323.304 0-229.75 229.23-416 512-416z',
ENLARGE2: 'M1024 0v416l-160-160-192 192-96-96 192-192-160-160zM448 672l-192 192 160 160h-416v-416l160 160 192-192z',
SHRINK2: 'M448 576v416l-160-160-192 192-96-96 192-192-160-160zM1024 96l-192 192 160 160h-416v-416l160 160 192-192z',
BIN2: 'M192 1024h640l64-704h-768zM640 128v-128h-256v128h-320v192l64-64h768l64 64v-192h-320zM576 128h-128v-64h128v64z',
CLOUD_CHECK: 'M892.268 514.49c2.442-11.108 3.732-22.646 3.732-34.49 0-88.366-71.634-160-160-160-14.224 0-28.014 1.868-41.134 5.352-24.796-77.352-97.288-133.352-182.866-133.352-87.348 0-161.054 58.336-184.326 138.17-22.742-6.62-46.792-10.17-71.674-10.17-141.384 0-256 114.616-256 256 0 141.382 114.616 256 256 256h608c88.366 0 160-
import React from 'react';
import Icon from './Icon.jsx';
import {ICONS} from '../../constants';
export default props => (
<div>
<button onClick={() => props.shareVia('faceboook')}>
<Icon icon={ICONS.FACEBOOK} />
</button>
<button onClick={() => props.shareVia('twitter')}>
@davidgilbertson
davidgilbertson / Icon.jsx
Last active July 15, 2017 20:49
Complete, minimal version
import React from 'react';
const icons = {
'bin2': 'M192 1024h640l64-704h-768zM640 128v-128h-256v128h-320v192l64-64h768l64 64v-192h-320zM576 128h-128v-64h128v64z',
'bold': 'M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z',
'underline': 'M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494s103.75-18.29 140.646-51.494c33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z',
'italic': 'M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z',
'paragraph-left': 'M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z',
'paragraph-center': 'M0 64h1024v
import React from 'react';
const {Component, PropTypes} = React;
import SignInModalBody from './SignInModalBody.jsx';
import EditScreenModalBody from './EditScreenModalBody.jsx';
import FeedbackModalBody from './FeedbackModalBody.jsx';
import HelpPanelModalBody from './HelpPanelModalBody.jsx';
import styles from './styles.js';
class Modal extends Component {
import React from 'react';
const {Component, PropTypes} = React;
import styles from './styles.js';
class SignInModalBody extends Component {
render() {
return (
<div>
<p style={styles.title}>Choose your flavor</p>
import React from 'react';
const {Component, PropTypes} = React;
import style from './style.js';
class FeedbackModalBody extends Component {
render() {
return (
<textarea
style={style}
placeholder="What could we do better, what do you love?"
@davidgilbertson
davidgilbertson / Modal.jsx
Last active June 4, 2016 07:09
Allowing state to be set by child
import React from 'react';
const {Component, PropTypes} = React;
import SignInModalBody from './SignInModalBody.jsx';
import EditScreenModalBody from './EditScreenModalBody.jsx';
import FeedbackModalBody from './FeedbackModalBody.jsx';
import HelpPanelModalBody from './HelpPanelModalBody.jsx';
import styles from './styles.js';
class Modal extends Component {
import React from 'react';
const {Component, PropTypes} = React;
import styles from './styles.js';
class SignInModalBody extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
import {connect} from 'react-redux';
import * as actions from '../../data/actions.js';
import Modal from './Modal.jsx';
export default connect(state => state, () => actions)(Modal);