Skip to content

Instantly share code, notes, and snippets.

// @flow
class Person {
constructor() {}
listen(data) {}
say() {
return {}
}
}
/* eslint-disable react/no-multi-comp */
import React, { PureComponent } from 'react'
// import PropTypes from 'prop-types'
import styled from 'styled-components'
import classnames from 'classnames'
class TabView extends PureComponent {
handleChange = (event) => {
function cons(a, b) {
return p => p(a)(b)
}
function car(pair) {
return pair(a => b => a)
}
function cdr(pair) {
return pair(a => b => b)
Бизнесс логика

Вся бизнесс логика должна храниться в хоках src/components/сущность/* под сущность понимаеться в данном проэкте:

  • матчи
    • бизнесс логика матчей должна отвечать за получение данных с сервера, и передачу их по пропсам в дочернии компонты
  • пользователь
    • бизнесс логика пользователя отвечает за за получение конечных данных от пользователя, это заполнение форм, одноразоваое валидирование перед отправкой. Самих форм и любого друго отображения там не должно быть.
  • корзина
    • бизнесс логика корзины должна передавать по пропсам методы добавления в корзину, это во вью матчей. Сама корзина должна работать аналогично пользователю
  • платежная система
.contents {
position: absolute;
width: 700px;
height: 1725px;
}
.wrapper {
position: relative;
top: 600px;
}
/* eslint-disable func-names, no-underscore-dangle */
import EventBus from 'vertx3-eventbus-client'
const delayObserver = (timeCount) => {
const state = []
let stop = false
return ({
emmit: () => {
if (stop) return false
function equalInterface(sample, eq) {
const type = t => Object.prototype.toString.call(t).slice(8,-1).toLocaleLowerCase()
debugger
let isEqual = true
if (type(sample) === 'object') {
Object.keys(sample).forEach(key => {
if (type(sample[key]) === 'object') {
const intoIsEqual = equalInterface(sample[key], eq[key])
console.log(sample[key], eq[key], intoIsEqual)
/**
* @param {object[]} data [{ name:'group', [elementName]:[] }, ...]
* @param {number} columns 3
* @param {number} groupHeight высота между групапами, 1 эквивалентно высоте одного элемента группы
* @param {string} elementName имя свойства элементов в группе
* @returns {object[]} [{ column:1, data: [group, ...] }, ...]
*/
function sortGroupColumn(data, columns, groupHeight, elementName) {
// в каком столбце какие данные (data); len - общее кол-во значений в группах
const column = {}
compose = (...fns) =>
fns.reduceRight((prevFn, nextFn) =>
(...args) => nextFn(prevFn(...args)),
value => value
)
composeWithState = (...fns) => (res) => fns.reduceRight((value, fn) => fn(value, res), res)
const closest = (arr, g) =>
arr.reduce((prev, cur) =>