It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.
# Reference: https://www.exclamationlabs.com/blog/continuous-deployment-to-npm-using-gitlab-ci/ | |
# GitLab uses docker in the background, so we need to specify the | |
# image versions. This is useful because we're freely to use | |
# multiple node versions to work with it. They come from the docker | |
# repo. | |
# Uses NodeJS V 9.4.0 | |
image: node:9.4.0 | |
# And to cache them as well. |
import React, { Fragment } from 'react'; | |
import { Query, Mutation } from 'react-apollo'; | |
import get from 'lodash/get'; | |
//components | |
import Loading from 'components/LoadingScreen'; | |
export const QueryWithLoading = ({ children, query, dataPath, loadingComponent = <Loading /> }) => ( | |
<Query query={query}> | |
{({ data, loading }) => (loading ? loadingComponent : children(get(data, dataPath)))} |
{ | |
"private": true, | |
"scripts": { | |
"build:js": "browserify -e source/scripts/index.js -t [ babelify --optional es7 ] -o public/bundle.js", | |
"build:css": "cssnext source/styles/index.css public/bundle.css", | |
"build": "npm run js && npm run css", | |
"watch:js": "watchy -w source/scripts -- npm run build:js", | |
"watch:css": "watchy -w source/styles -- npm run build:css" | |
}, | |
"dependencies": {}, |
Hi Nicholas,
I saw you tweet about JSX yesterday. It seemed like the discussion devolved pretty quickly but I wanted to share our experience over the last year. I understand your concerns. I've made similar remarks about JSX. When we started using it Planning Center, I led the charge to write React without it. I don't imagine I'd have much to say that you haven't considered but, if it's helpful, here's a pattern that changed my opinion:
The idea that "React is the V in MVC" is disingenuous. It's a good pitch but, for many of us, it feels like in invitation to repeat our history of coupled views. In practice, React is the V and the C. Dan Abramov describes the division as Smart and Dumb Components. At our office, we call them stateless and container components (view-controllers if we're Flux). The idea is pretty simple: components can't
* { | |
font-size: 12pt; | |
font-family: monospace; | |
font-weight: normal; | |
font-style: normal; | |
text-decoration: none; | |
color: black; | |
cursor: default; | |
} |
// [B](f: (A) ⇒ [B]): [B] ; Although the types in the arrays aren't strict (: | |
Array.prototype.flatMap = function(lambda) { | |
return Array.prototype.concat.apply([], this.map(lambda)); | |
}; |