Skip to content

Instantly share code, notes, and snippets.

View mohandere's full-sized avatar
🎯
Focusing

Mohan Dere mohandere

🎯
Focusing
View GitHub Profile
@mohandere
mohandere / hoc-hof.js
Created May 4, 2019 11:25
Higher-Order Components
// Example #1
const twice = (f, v) => f(f(v))
const add3 = v => v + 3
twice(add3, 7) // 13
// Example #2
const filter = (predicate, xs) => xs.filter(predicate)
const is = type => x => Object(x) instanceof type
@mohandere
mohandere / hoc-signature.js
Last active May 4, 2019 11:24
Higher-Order Components
import React from 'react'
const higherOrderComponent = WrappedComponent => {
class HOC extends React.Component {
render() {
return <WrappedComponent />
}
}
return HOC
}
@mohandere
mohandere / sortObject.js
Last active December 20, 2018 13:59
Sort plain js object based on custom order from Array
// Example -
// { category: 'Cloths', 'brand': 'Van H', collection: 'New' }.sortObject(['brand', 'category', 'collection']);
var sortingBasedOnArr = ['collection', 'brand', 'category'];
var targetObject = { category: 'Cloths', 'brand': 'Van H', collection: 'New' }
Object.prototype.sortObject = function(sortingArr) {
var targetObj = this;
var result = {}
if (!targetObj) {
return result;
@mohandere
mohandere / registerServiceWorker.js
Created August 10, 2018 16:27
Service worker working example
// Main service worker controller
function ServiceWorkerController() {
this._toastsView = new ToastsView();
this._register();
};
ServiceWorkerController.prototype._register = function() {
if (!navigator.serviceWorker) return;
var ServiceWorkerController = this;
var swUrl = "/${optportalName}/service-worker/service-worker.js";
@mohandere
mohandere / package.json
Created May 30, 2018 10:51
package.json - Obfuscate CSS class names in Create React App without eject
{
"name": "my-react-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"babel-plugin-react-css-modules": "^3.4.2",
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-scripts": "1.1.4"
},
@mohandere
mohandere / config-overrides.js
Created May 30, 2018 10:51
config-overrides.js - Obfuscate CSS class names in Create React App without eject
// File - src/config-overrides.js
// react-app-rewired: Override create-react-app webpack configs without ejecting
const path = require("path");
const { compose, getLoader, injectBabelPlugin } = require("react-app-rewired");
function rewire(config, env) {
const cssRules = getLoader(
@mohandere
mohandere / App.js
Created May 30, 2018 10:50
App.js - Obfuscate CSS class names in Create React App without eject
// File - src/App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import Link from './Link';
import styles from './App.css';
class App extends Component {
render() {
return (
<div className={styles.App}>
@mohandere
mohandere / App.css
Last active May 30, 2018 10:50
App.css - Obfuscate CSS class names in Create React App without eject
// File - src/App.css
.App {
text-align: center;
}
.AppLogo {
height: 80px;
}
import React, { Component } from 'react';
import{
Grid, Row, Col,
FormGroup, ControlLabel
} from 'react-bootstrap';
import { Field, reduxForm } from 'redux-form'
import { renderInputField, required, email } from 'utils/form-helpers'
let SettingsForm = props => {
const { handleSubmit, submitting } = props
@mohandere
mohandere / asyncRoutes.js
Created March 11, 2018 11:34
asyncRoutes in CRA
import React from 'react';
import {
Route,
Switch
} from 'react-router';
import Loadable from 'react-loadable';
import AppLoader from './common/components/AppLoader';
// Import modules/routes
import About from './about';