Skip to content

Instantly share code, notes, and snippets.

View hckhanh's full-sized avatar
🍊
Peace

Khánh Hoàng hckhanh

🍊
Peace
View GitHub Profile
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
# Autogenerated VS/MD solution and project files
/*.csproj
/*.unityproj
/*.sln
/*.suo
@hckhanh
hckhanh / gulpfile.js
Last active August 12, 2016 11:09
A file of gulp tasks for React
const gulp = require('gulp');
const browserify = require('browserify');
const babelify = require('babelify');
const source = require('vinyl-source-stream');
const uglify = require('gulp-uglify');
const streamify = require('gulp-streamify');
gulp.task('build:debug', () => {
return browserify({ entries: 'js/app.js', debug: true })
.transform('babelify', { presets: ['es2015', 'react'] })
@hckhanh
hckhanh / jest-package.json
Last active August 14, 2016 09:29
Jest configurations in package.json
"jest": {
"automock": false,
"moduleNameMapper": {
"^.+\\.(css|less)$": "<rootDir>/test/styleMock.js",
"^.+\\.(png|jpg|jpeg|gif|svg|woff|woff2|ttf|eot)$": "<rootDir>/test/fileMock.js"
}
}
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: [ 'whatwg-fetch', './js/app.js' ],
output: {
filename: 'bundle.js',
path: __dirname + '/dist',
publicPath: '/'
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: [ 'whatwg-fetch', './js/app.js' ],
// Render source-map file for final build
devtool: 'source-map',
output: {
filename: '[name].js',
@hckhanh
hckhanh / Usages.js
Last active February 8, 2019 12:28
Wrap original component with HOC
// Enhanced BlogPost component
export default withSubscription(BlogPost, (DataSource, props) =>
DataSource.getBlogPost(props.id)
);
// Enhanced CommentList component
export default withSubscription(CommentList, DataSource =>
DataSource.getComments()
);
@hckhanh
hckhanh / BlogPost.js
Last active February 9, 2019 14:10
without higher-order component
import React, { Component } from "react";
import DataSource from "../DataSource";
const TextBlock = ({ text }) => <>{text}</>;
export class BlogPost extends Component {
constructor(props) {
super(props);
this.state = {
data: DataSource.getBlogPost(props.id)
@hckhanh
hckhanh / CommentList.js
Last active February 9, 2019 14:10
without higher-order component
import React, { Component } from "react";
import DataSource from "../DataSource";
const Comment = ({ comment }) => <>{comment}</>;
export class CommentList extends Component {
constructor(props) {
super(props);
this.state = {
data: DataSource.getComments()
@hckhanh
hckhanh / withSubscription.js
Last active February 9, 2019 14:10
Implementation for HOC
import React, { Component } from "react";
import DataSource from "../DataSource";
export default function withSubscription(Component, selectData) {
return class extends Component {
constructor(props) {
super(props);
this.state = {
data: selectData(DataSource, props)
};
@hckhanh
hckhanh / BlogPost.diff
Last active February 9, 2019 14:09
higher-order component injected
import React, { Component } from "react";
-import DataSource from "../DataSource";
+import withSubscription from "./withSubscription";
const TextBlock = ({ text }) => <>{text}</>;
class BlogPost extends Component {
- constructor(props) {
- super(props);
- this.state = {