Skip to content

Instantly share code, notes, and snippets.

View huang47's full-sized avatar

ShihChi Huang huang47

  • Cupertino, California
View GitHub Profile
// @flow
import React, { type ComponentType } from 'react';
import type { TIcon, TColor } from '../type';
import AbstractButton from './AbstractButton';
import { Size, type TSize } from '../renderer/size';
export type ButtonProps<TValue> = {
disabled: boolean,
backgroundColor: TColor,
// @flow
import * as React from 'react';
import { TouchableOpacity } from 'react-native';
type Props<TValue> = {
children: React.Node,
disabled: boolean,
value: TValue,
onPress: (*) => void,
// classic component
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
}
// stateless component
const HelloMessage = (props) => {
return <div>Hello {props.name}</div>;
}
@huang47
huang47 / test.js
Created October 21, 2015 03:27
rx tooltip
var Rx = require('rx');
var Observable = Rx.Observable;
var Subject = Rx.Subject;
var hover = new Subject();
var blur = new Subject();
var hovers = hover.asObservable();
var blurs = blur.asObservable();
var HOVER_TIMER = 300;
@huang47
huang47 / rx
Last active August 29, 2015 14:21
suppress pause when end comes back to back
var Rx = require('rx');
var pauses = new Rx.Subject();
var ends = new Rx.Subject();
pauses.
flatMap(function () {
return Rx.Observable.amb(
Rx.Observable.timer(1000).
map(function () { return true }),
ends.map(function () { return false })
var Rx = require('rx');
var s1 = new Rx.Subject();
var s2 = new Rx.Subject();
var s3 = new Rx.Subject();
Rx.Observable.merge(s1, s2, s3).
forEach(
console.log.bind(console, 'next'),
console.log.bind(console, 'error'),
var Rx = require('rx');
var throwErrors = Rx.Observable.throw(new Error('tiny url exploded'));
throwErrors.
do(
function () {},
function () {
console.log('handle error');
}
@huang47
huang47 / -
Created December 23, 2014 01:16
var Rx = require('rx');
var subjects = {};
function create(sn) {
var s = new Rx.Subject();
subjects[sn] = s;
var Rx = require('rx');
var profileSwitchSuccess = new Rx.Subject();
var cacheExpiryInHomeOnForeground = new Rx.Subject();
var loginCheckDone = new Rx.Subject();
profileSwitchSuccess.asObservable().
map(function () {
return true;
}).
var Rx = require('rx');
var profileSwitchSuccess = new Rx.Subject();
var cacheExpiryInHomeOnForeground = new Rx.Subject();
var loginCheckDone = new Rx.Subject();
profileSwitchSuccess.asObservable().
do(function () {
console.log('profile switch success');
}).