This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { browserHistory } from 'react-router'; | |
| /** | |
| * @param {Object} query | |
| */ | |
| export const addQuery = (query) => { | |
| const location = Object.assign({}, browserHistory.getCurrentLocation()); | |
| Object.assign(location.query, query); | |
| browserHistory.push(location); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // In v2/3 you did this: | |
| import ReactDOM from 'react-dom' | |
| import { Router, browserHistory, Route } from 'react-router' | |
| ReactDOM.render( | |
| <Router> | |
| <Route path="/about" component={About}/> | |
| <Route path="/:username" component={User}/> | |
| </Router> | |
| ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // File: .storybook/config.js | |
| import { configure, addDecorator } from '@kadira/storybook'; | |
| import Theme from './../src/ui/theme'; | |
| import React from 'react'; | |
| import { ThemeProvider } from 'styled-components' | |
| function loadStories() { | |
| require('../stories'); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| android.permission.ACCESS_ALL_DOWNLOADS | |
| android.permission.ACCESS_BLUETOOTH_SHARE | |
| android.permission.ACCESS_CACHE_FILESYSTEM | |
| android.permission.ACCESS_CHECKIN_PROPERTIES | |
| android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY | |
| android.permission.ACCESS_DOWNLOAD_MANAGER | |
| android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED | |
| android.permission.ACCESS_DRM_CERTIFICATES | |
| android.permission.ACCESS_EPHEMERAL_APPS | |
| android.permission.ACCESS_FM_RADIO |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Here is a function that I use all the time when creating public | |
| // async APIs in JavaScript: | |
| const resolvePromise = (promise, callback) => { | |
| if (callback) | |
| promise.then(value => callback(null, value), callback) | |
| return promise | |
| } | |
| // Sometimes I like to use callbacks, but other times a promise is |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import React, { PropTypes } from 'react' | |
| const Describe = ({ title, children }) => ( | |
| <div> | |
| <h1>{title}</h1> | |
| <ul>{children}</ul> | |
| </div> | |
| ) | |
| Describe.propTypes = { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var Rx = require('rxjs'); | |
| var firebase = require('firebase'); | |
| firebase.initializeApp({ | |
| "databaseURL": "https://quiver-two.firebaseio.com", | |
| "serviceAccount": "./service-account.json" | |
| }); | |
| var ref = firebase.database().ref('rxjs-demo'); | |
| Rx.Observable.fromPromise(ref.remove()) | |
| .map(function () { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Action creators can be impure. | |
| export const addChat = ({ | |
| // cuid is safer than random uuids/v4 GUIDs | |
| // see usecuid.org | |
| id = cuid(), | |
| msg = '', | |
| user = 'Anonymous', | |
| timeStamp = Date.now() | |
| } = {}) => ({ | |
| type: ADD_CHAT, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { h, Component } from 'preact'; | |
| import Markup from 'preact-markup'; | |
| import register from './preact-custom-element'; | |
| // just a proxy component: WC -> Preact -> WC | |
| const A = () => <x-b foo="initial foo from <x-a>" />; | |
| // stateful component that can re-render | |
| class B extends Component { | |
| render(props, state) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { select, put, take } from 'redux-saga/effects'; | |
| function* emptySaga() {} | |
| export function* withConfirmation(text, onConfirm, onCancel = emptySaga) { | |
| yield put({ type: 'ShowConfirmationDialog', payload: text }); | |
| const { type } = yield take([ | |
| 'ConfirmationDialogConfirmed', | |
| 'ConfirmationDialogCanceled' |