Skip to content

Instantly share code, notes, and snippets.

View wuct's full-sized avatar

CT Wu wuct

View GitHub Profile
@wuct
wuct / mkFaveicon.ssh
Created March 15, 2014 06:22
mkFaveicon.ssh
convert image.png -bordercolor white -border 0 \
\( -clone 0 -resize 16x16 \) \
\( -clone 0 -resize 32x32 \) \
\( -clone 0 -resize 48x48 \) \
\( -clone 0 -resize 64x64 \) \
-delete 0 -alpha off -colors 256 favicon.ico
@wuct
wuct / MapCanvas.js
Created May 13, 2015 06:49
react-google-map handle zoom and center changed
import React from 'react';
import {GoogleMaps, InfoWindow} from 'react-google-maps';
class MapCanvas extends React.Component {
constructor(...args) {
super(...args);
this.state = {
zoomLevel: 3,
center: new google.maps.LatLng(34.397, 60.644)
};
import React from 'react';
import GoogleMapsInfobox from 'google-maps-infobox';
import SimpleChildComponent from 'react-google-maps/lib/internals/SimpleChildComponent';
import createRegisterEvents from 'react-google-maps/lib/internals/createRegisterEvents';
import exposeGetters from 'react-google-maps/lib/internals/exposeGetters';
const {PropTypes} = React;
class InfoBox extends SimpleChildComponent {
constructor (...args) {
@wuct
wuct / gist:3e39f080613c34278591
Last active August 29, 2015 14:21
try to use raf in react
_animateIcon() {
const initTime = Date.now();
raf(function tick() {
const {icon} = this.state;
const diffTime = Date.now() - initTime;
const renderTime = diffTime % 4000;
const iconSize = (renderTime / 1000) * 10 + 10;
// console.log(iconSize);
@wuct
wuct / react-class-es6.js
Last active December 1, 2015 11:58
add and remove listner
import React from 'react';
import MyStore from './MyStore';
class MyComponent extends React.Component {
componentDidMount() {
MyStore.addChangeListener(this._onChange.bind(this));
}
componentWillUnmount() {
MyStore.removeChangeListener(this._onChange.bind(this)); // not working
@wuct
wuct / .eslintrc
Created July 2, 2015 09:31
.eslintrc for React projects
{
"parser": "babel-eslint",
"env": {
"browser": true,
"node": true,
"jasmine": true
},
"plugins": [
"react",
"babel"
@wuct
wuct / users.js
Last active August 29, 2015 14:27
// get users list (array), convert it to object
users = users.reduce((res, user) => {
res[user.id] = user;
return res;
}, {})
// which will look like
工具
NPM
套件管理工具
https://www.npmjs.com/
Webpack
前端打包工具,可用來合併、壓縮、優化各種檔案,且提供 live reloding dev server
@wuct
wuct / AuthorizationHOC.js
Created December 22, 2015 06:22
An authorization high-order-component using recompose, redux and react-router.
import { emptyObject } from 'fbjs/lib/emptyObject';
import { connect } from 'react-redux';
import { pushState } from 'redux-router';
import pure from 'recompose/pure';
import defaultProps from 'recompose/defaultProps';
import doOnReceiveProps from 'recompose/doOnReceiveProps';
import renderNothing from 'recompose/renderNothing';
import renderComponent from 'recompose/renderComponent';
import branch from 'recompose/branch';
import compose from 'recompose/compose';
@wuct
wuct / mergeFuncs.js
Created December 23, 2015 16:03
merge two functions into one
const mergeFuncs = (...funcs) => (...args) => {
for (const func of funcs) {
if (typeof func === 'function') func(...args);
}
}
const foo = e => console.log('foo', e)
const bar = (e, val) => console.log('bar', e, val)
const foobar = mergeFuncs(foo, bar)