Skip to content

Instantly share code, notes, and snippets.

View agoldis's full-sized avatar
🎯
Focused

Andrew Goldis agoldis

🎯
Focused
View GitHub Profile
@agoldis
agoldis / invoice.html
Created July 22, 2019 18:13
Text cut in half Chromium issue
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, user-scalable=yes" />
<title>Invoice INV0002</title>
<!-- Fonts loading -->
<link
href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap"
rel="stylesheet"
#!/bin/sh
dateDir=`date +%Y-%m-%d-%H-%M`
baseDir="/tmp/$dateDir"
mkdir -p $baseDir
for specName in `find ./cypress/integration/ -type f -printf "%f\n"`; do
rm -rf ./test-results/mochawesome
workDir=$baseDir/$specName
User types "a" User types "b" Client's value is "ab"
^
+----------------------------+------------------------------------------------------------------------------>
+ + |
|
+--------------------------+ +--------------------------+ |
debounce rate | debounce rate | |
| | |
| | +
v v this.isSaving = false
@agoldis
agoldis / deriveState.js
Created April 29, 2018 00:14
redux - use state object
import {
booksSummarySelector,
usersSummarySelector,
userDetailsSelector,
bookDetailsSelector
} from "./selectors";
class NotRealState {
constructor(state) {
Object.defineProperty(this, "_state", {
@agoldis
agoldis / deriveStateSelectors.js
Created April 28, 2018 23:41
redux - full example
import { compose } from "redux";
import { createSelector } from "reselect";
const getBooks = state => state.books;
const getUsers = state => state.users;
const getComments = state => state.comments;
const usersSummary = createSelector(
[getUsers, getComments],
(users, comments) =>
@agoldis
agoldis / deriveState.js
Created April 28, 2018 05:46
redux - state structure change
/* other derived state methods */
const moveToApp = state =>
Object.defineProperties(state, {
users: {
get: function() {
return this.app.users;
},
enumerable: false,
configurable: true
@agoldis
agoldis / deriveState.js
Created April 27, 2018 06:03
redux - full example
import { compose } from "redux";
const usersSummary = function() {
return this.users.map(user => ({
...user,
booksCount: user.books.length,
commentsCount: this.comments.filter(c => c.user === user.id).length
}));
};
@agoldis
agoldis / storeEnhancer.js
Created April 27, 2018 05:58
redux - full example
import { deriveState } from "./deriveState";
export const enhanceStore = createStore => (
reducer,
preloadedState,
enhancer
) => {
const store = createStore(reducer, preloadedState, enhancer);
const _getState = store.getState;
store.getState = () => deriveState(_getState());
@agoldis
agoldis / deriveState.js
Created April 27, 2018 05:51
redux - actual derive state
import { compose } from "redux";
const usersSummary = function() {
return this.users.map(user => ({
...user,
booksCount: user.books.length,
commentsCount: this.comments.filter(c => c.user === user.id).length
}));
};
@agoldis
agoldis / store.js
Last active April 27, 2018 05:56
redux - full example
import { createStore, applyMiddleware, compose } from "redux";
import { initialState } from "./initialState";
import { reducer } from "./reducer";
import { enhanceStore } from "./storeEnhancer";
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
export const store = createStore(
reducer,
initialState,