Skip to content

Instantly share code, notes, and snippets.

View themojilla's full-sized avatar
🎯
Focusing

Kia. themojilla

🎯
Focusing
View GitHub Profile
@themojilla
themojilla / privateRoute.js
Created January 23, 2018 14:56
privateRoute
export const PrivateRoute = ({component: Component, ...rest}) => (
<Route {...rest} render={props => (
localStorage.getItem('token')
? <Component {...props}/>
: <Redirect to={{ pathname: '/login', state: { from: props.location } }} />
)} />
);
@themojilla
themojilla / authHOC.js
Created April 14, 2018 19:36
HOC wrapper for react-router-config routes
import React from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
export default ChildComponent => {
class RequireAuth extends React.PureComponent {
render() {
switch (this.props.isAuthenticated) {
case false:
return <Redirect to="/login" />;
@themojilla
themojilla / auth.js
Created August 2, 2018 11:12
auth reducer
import 'isomorphic-fetch';
/**
*
* Actions */
export const LOGIN_REQUEST = 'LOGIN_REQUEST';
export const LOGIN_SUCCESS = 'LOGIN_SUCCESS';
export const LOGIN_FAILURE = 'LOGIN_FAILURE';
export const LOGOUT_REQUEST = 'LOGOUT_REQUEST';
export const LOGOUT_SUCCESS = 'LOGOUT_SUCCESS';
@themojilla
themojilla / countries.js
Last active April 17, 2024 11:33
لیست کامل کشورهای جهان - json
export default [
{ name: 'Afghanistan', code: 'AF', name_fa: 'افغانستان' },
{ name: 'land Islands', code: 'AX', name_fa: 'جزایر الند' },
{ name: 'Albania', code: 'AL', name_fa: 'آلبانی' },
{ name: 'Algeria', code: 'DZ', name_fa: 'الجزایر' },
{ name: 'American Samoa', code: 'AS', name_fa: 'ساموآی آمریکا' },
{ name: 'AndorrA', code: 'AD', name_fa: 'آندورا' },
{ name: 'Angola', code: 'AO', name_fa: 'آنگولا' },
{ name: 'Anguilla', code: 'AI', name_fa: 'آنگویلا' },
{ name: 'Antigua and Barbuda', code: 'AG', name_fa: 'آنتیگوآ و باربودا' },
@themojilla
themojilla / .gitlab-ci.yml
Created February 17, 2019 07:19 — forked from superjose/.gitlab-ci.yml
This is an example of a .gitlab-ci.yml that is required for Continuous Integration on GitLab projects.
# Reference: https://www.exclamationlabs.com/blog/continuous-deployment-to-npm-using-gitlab-ci/
# GitLab uses docker in the background, so we need to specify the
# image versions. This is useful because we're freely to use
# multiple node versions to work with it. They come from the docker
# repo.
# Uses NodeJS V 9.4.0
image: node:9.4.0
# And to cache them as well.
kubectl get services # List all services
kubectl get pods # List all pods
kubectl get nodes -w # Watch nodes continuously
kubectl version # Get version information
kubectl cluster-info # Get cluster information
kubectl config view # Get the configuration
kubectl describe node <node> # Output information about a node
kubectl get pods # List the current pods
kubectl describe pod <name> # Describe pod <name>
kubectl get rc # List the replication controllers
@themojilla
themojilla / fromNow.js
Last active April 26, 2020 06:19
A utility helper to calculate "time ago" or "from now " in a readable format using Intl API
// Order does matter
const units = [
['second', 1],
['minute', 60],
['hour', 60 * 60],
['day', 24 * 60 * 60],
['month', 30 * 24 * 60 * 60],
['year', 12 * 30 * 24 * 60 * 60],
];
@themojilla
themojilla / what-forces-layout.md
Created September 6, 2020 21:28 — forked from paulirish/what-forces-layout.md
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent

FWIW: I'm not the author of the content presented here (which is an outline from Edmond Lau's book). I've just copy-pasted it from somewhere over the Internet, but I cannot remember what exactly the original source is. I was also not able to find the author's name, so I cannot give him/her the proper credits.


Effective Engineer - Notes

What's an Effective Engineer?

Here is a non-exhaustive list of books that have influenced how I think about software.