Skip to content

Instantly share code, notes, and snippets.

View 197291's full-sized avatar
:octocat:

Yuriy Provotorov 197291

:octocat:
  • Taganrog
View GitHub Profile
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();
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 * 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);
}
};
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
};
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 = {}) {
@197291
197291 / mongo-cli.js
Created November 5, 2017 12:38
Usage cli for setting queries to mongodb
var MongoClient = require('mongodb').MongoClient,
commandLineArgs = require('command-line-args'),
assert = require('assert');
var options = commandLineOptions();
MongoClient.connect('mongodb://localhost:27017/crunchbase', function(err, db) {
@197291
197291 / editRow.js
Created October 26, 2017 13:20
Example_D3_part3
App.prototype.editRow = function (config) {
if(config.name) {
if(this._isUniqueTag(config.name, self.shapes['grouped'])) {
d3.select(self.currentGroupForEdit).select('text').text(config.name)
} else {
alert('Group tag have to be unique. ' + config.name + ' is already existing.')
}
}
if(config.numberOfSeats) {
var elements = d3.select(self.currentGroupForEdit).selectAll('g.point');
@197291
197291 / calculateCoords.js
Created October 26, 2017 13:19
Example_D3_part2
App.prototype.calculateCoords = function (rowNumber, currentShape) {
var max_y = 20;
d3.selectAll('g.group').each(function (d) {
var coords = d3.transform(d3.select(this).attr("transform"));
var grpX = coords.translate[0];
var grpY = coords.translate[1];
if (grpY > max_y) {
max_y = grpY;
}
});
@197291
197291 / DynamicArc.js
Created October 26, 2017 13:19
Example_D3_part1
App.prototype.makeDynamicArc = function (data) {
var rowLen = data.rowLen;
var shape0_x,
shape0_y;
var shape0_w = data.tag.w,
shape0_h = data.tag.h;
var shapeType = data.shape.shapeType,
shapeW = data.shape.w,
shapeH = data.shape.h;
@197291
197291 / actions.js
Created October 26, 2017 07:03
Actions
export function loadPlans(etag) {
return {
types: [LOAD_PLANS, LOAD_PLANS_SUCCESS, LOAD_PLANS_FAIL],
promise: (client) => client.get('/plans', {
headers: {
'If-None-Match': etag
}
})
};
}