Skip to content

Instantly share code, notes, and snippets.

View 197291's full-sized avatar
:octocat:

Yuriy Provotorov 197291

:octocat:
  • Taganrog
View GitHub Profile
export default class Api {
get(url: string, config?: AxiosRequestConfig) {
return new Promise((resolve, reject) => {
axios.get(BASE_URL + url, config)
.then(({data}) => resolve(data))
.catch(error => reject(error));
});
}
put(url: string, _data: any = {}) {
export function getCoords(elem: any) {
var box = elem.getBoundingClientRect();
return {
top: box.top + window.pageYOffset,
left: box.left + window.pageXOffset,
right: box.right + window.pageXOffset,
bottom: box.bottom + window.pageYOffset,
width: box.width,
height: box.height
};
import * as consts from 'redux/constants';
export default store => next => action => {
const {error} = action;
if (error && error.response && error.response.data.result === 5) {
next({ type: consts.DISPLAY_ERROR, error: error.response.data});
} else {
next(action);
}
};
import axios from 'axios';
import * as consts from '../constants';
export default store => next => action => {
const {api, type, ...rest} = action;
if (!api) {
return next(action);
}
import { Store, createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import reducer from './reducers';
import Api from 'helpers/api';
import errorHandler from 'redux/middlewares/errorHandler';
const devToolsExtension: string = 'devToolsExtension';
let devtools: any = window[devToolsExtension] ? window[devToolsExtension]() : (f: any) => f;
const api = new Api();
class HashMap {
constructor () {
this._size = 0;
this._map = {};
}
put (key, value) {
if (!this.containsKey(key)) {
this._size++;
@197291
197291 / Stack
Created June 12, 2018 06:56
Stack
/* Stacks! */
// functions: push, pop, peek, length
var letters = []; // this is our stack
var word = "freeCodeCamp"
var rword = "";
@197291
197291 / Queue
Created June 12, 2018 06:58
Queue
function Queue () {
collection = [];
this.print = function() {
console.log(collection);
};
this.enqueue = function(element) {
collection.push(element);
};
this.dequeue = function() {
return collection.shift();
@197291
197291 / BST
Created June 12, 2018 07:05
Binary Search Tree
class Node {
constructor(data, left = null, right = null) {
this.data = data;
this.left = left;
this.right = right;
}
}
class BST {
constructor() {

Алгоритм расчёта итогового размера с flex-grow

1 шаг. Рассчитываем свободное место во флекс-контейнере:

Свободное место = Ширина контейнера - Сумма базовых размеров элементов

2 шаг. Считаем размер минимальной доли свободного места:

Доля свободного места = Свободное место / Сумма flex-grow всех элементов

3 шаг. Базовый размер каждого флекс-элемента увеличиваем на размер минимальной доли свободного места умноженной на значение flex-grow этого элемента:

Итоговый размер = Базовый размер + (Доля свободного места * flex-grow)

Для верхнего блока хочется задать коэффициенты 1 и 2. Но нужные размеры блоков получаются с коэффициентами 1 и 3. Давайте посчитаем:

Свободное место = 300px - (50px * 2) = 200px