Skip to content

Instantly share code, notes, and snippets.

@rpominov
rpominov / containers-and-pure-views-in-react.md
Last active November 23, 2015 09:56
About containers VS pure views in React (an untested idea)
  1. If it works for you just use single container on top of each route, othervise see 2
  2. Wrap a view into container whenever necessary, but always pass wrapped component via props:
// pure component's render
<foo>
  <bar>
    {this.props.someWrappedChild}
  </bar>
@rpominov
rpominov / 01-react-testing.md
Last active November 1, 2015 11:43
React testing ideas

Stateles components

// mark relevant parts of result tree with __tetsId & __testClass
const TestTarget = props => 
  <div>
    <Foo foo={props.foo} __tetsId="foo" />
    <ul>
      <li num={1} __testClass="baz" />
      <li num={2} __testClass="baz" />
@rpominov
rpominov / react-draggable-concept.md
Created October 27, 2015 23:43
React draggable concept
@rpominov
rpominov / 01-react-teleports.md
Last active October 5, 2015 22:29
React-teleports concept

React-teleports concept

<TeleportManager>
  <Foo>
    <TeleportExit id="abc" />
    <Bar>
      <TeleportEntrance id="abc">
        <Baz />
 
@rpominov
rpominov / ReactDemo.js
Created July 18, 2015 10:53
React-demo concept
/* Will render <Counter/>, a number input,
* and a log-output widget with all onChange calls e.g.
* > onChange(1)
* > onChange(2)
*/
<Demo
target={Counter}
props={{
count: Demo.props.int.arbitrary
onChange: Demo.props.callback.log
@rpominov
rpominov / lightest-streams.js
Last active August 29, 2015 14:22
lightest streams
function createStream(executor) {
return {
observe(sink) {
return executor(sink)
}
}
}
function map(fn, stream) {
return createStream(sink => {
@rpominov
rpominov / promises.md
Last active June 11, 2016 10:06
Promises how I would do them

Promises how I would do them

1. No over polymorphic .then

Four methods instead: .map(a -> b), .mapError(a -> b), .flatMap(a -> Promise), .flatMapError(a -> Promise).

Why?

  • more predictable code
  • easier to understand what is going on

Keybase proof

I hereby claim:

  • I am rpominov on github.
  • I am rpominov (https://keybase.io/rpominov) on keybase.
  • I have a public key whose fingerprint is 9437 BD43 92AE 328C 4E24 29CA DE8A 5DF2 1C0A 2757

To claim this, I am signing this object:

const flux = createFlux();
flux.addStore('counter', {
initial() {
return 0;
},
reducers: {
add(cur, x) {
return cur + x;
},