
? ethorz
19.06.2017
13:55:47
да
ща

Дмитрий
19.06.2017
13:55:59

Сергей
19.06.2017
13:56:32

Google

? ethorz
19.06.2017
13:56:39
disabled={defaultFields || customFields}
в общем-то, видимо я тут напутал
наоборот === 0

Дмитрий
19.06.2017
14:00:08
Но вежь switch был лучше
err.case({
TypeError: (typeErr) => typeErr.message,
RangeError: ({ message }) => message,
_: () => 'unexpected error'
})

Сергей
19.06.2017
14:00:28
Хотя конечно я могу сделать)))
Но вот не уверен насколько хорошо так делать

andretshurotshka?❄️кде
19.06.2017
14:01:48

Oleg ?
19.06.2017
14:05:06
Ребят, меня тут помидорами закидали на тему того, что vue лучше(
Даже ссылку на медиум скинули

Сергей
19.06.2017
14:05:22

Oleg ?
19.06.2017
14:05:30
Что делать, как защищаться?

Vitaly
19.06.2017
14:05:38
соглашайся)

Google

Artur
19.06.2017
14:05:48

Oleg ?
19.06.2017
14:06:13
Говорят он быстрее и CLI инструменты аля creat react app лучше
Да и проще

Artur
19.06.2017
14:06:38
Быстрее чем react-fiber который вот вот выйдет?

Oleg ?
19.06.2017
14:06:43
А кинули в меня этим: https://10clouds.com/blog/vuejs-angular-react/

Artyom
19.06.2017
14:07:03
Кто-нибудь знает что-то лучше?
https://ant.design

Сергей
19.06.2017
14:07:11
Сравнивать фреймворк и библиотеку
Может мы будем сравнивать константу и тайпскрипт?

Artyom
19.06.2017
14:07:49
В плане удобности внедрения \ поддержки и UI\UX для прользователя?

Oleg ?
19.06.2017
14:08:07
Так что лучше для фронта?

Artur
19.06.2017
14:08:14
http://stefankrause.net/js-frameworks-benchmark4/webdriver-ts/table.html - брать надо vanillajs, лучший фреймворк евар

Oleg ?
19.06.2017
14:08:16
Может следующий проект лучше начинать с vue?

Artur
19.06.2017
14:08:25

Сергей
19.06.2017
14:08:30

Vitaly
19.06.2017
14:09:42
лично у меня от vue бомбило 2 месяца, а потом я уволился -_-

Oleg ?
19.06.2017
14:09:56
А что не так с vue?

Konstantin
19.06.2017
14:10:03

Дмитрий
19.06.2017
14:10:29
Было бы такое...
Есть такое) более того, и гораздо более крутые штуки вполне реальны

Сергей
19.06.2017
14:10:52

Google

Дмитрий
19.06.2017
14:11:08
Я не про расширение
Можно матчить прямо по паттернам, любым
Объект, тип, сумма типов, любая валидирующая функция и так далее)

Vitaly
19.06.2017
14:14:37
А что не так с vue?
После реакта мне показалось все высокоуровневым и избыточным. То есть я привык к ванильной логике рендера, без обсерверов и с функциональщиной.

Сергей
19.06.2017
14:15:28


Дмитрий
19.06.2017
14:18:41
``
test('complex types', () => {
const Point = TypePoint({
x: Number,
y: Number,
})
const Line = TypeLine({
start: Point,
end : Point,
})
const Circle = TypeCircle({
center: Point,
radius: Number,
})
const Shape = UnionShape({
Line,
Circle,
})
const point1 = Point({ x: 1, y: 2 })
const point2 = Point({ x: 0, y: 10 })
const shape1 = Shape({
start: { x: 0, y: 0 },
end : { x: 1, y: 0 },
})
expect(shape1).toHaveProperty('type', 'Line')
expect(shape1).toHaveProperty('typeName', 'Shape')
expect(shape1).toHaveProperty('value.end.x', 1)
const shape2 = Shape({
center: point1,
radius: 1,
})
expect(Point.is({ x: 1, y: 2 })).toBe(true)
expect(Point.is(point1)).toBe(true)
expect(shape2).toHaveProperty('type', 'Circle')
expect(shape2).toHaveProperty('typeName', 'Shape')
expect(shape2).toHaveProperty('value.center.y', 2)
const shape3 = Shape({
center: { x: 1, y: 2 },
radius: 1,
})
expect(shape3).toHaveProperty('type', 'Circle')
expect(shape3).toHaveProperty('typeName', 'Shape')
expect(shape3).toHaveProperty('value.center.y', 2)
})
`


Сергей
19.06.2017
14:19:16
``
test('complex types', () => {
const Point = TypePoint({
x: Number,
y: Number,
})
const Line = TypeLine({
start: Point,
end : Point,
})
const Circle = TypeCircle({
center: Point,
radius: Number,
})
const Shape = UnionShape({
Line,
Circle,
})
const point1 = Point({ x: 1, y: 2 })
const point2 = Point({ x: 0, y: 10 })
const shape1 = Shape({
start: { x: 0, y: 0 },
end : { x: 1, y: 0 },
})
expect(shape1).toHaveProperty('type', 'Line')
expect(shape1).toHaveProperty('typeName', 'Shape')
expect(shape1).toHaveProperty('value.end.x', 1)
const shape2 = Shape({
center: point1,
radius: 1,
})
expect(Point.is({ x: 1, y: 2 })).toBe(true)
expect(Point.is(point1)).toBe(true)
expect(shape2).toHaveProperty('type', 'Circle')
expect(shape2).toHaveProperty('typeName', 'Shape')
expect(shape2).toHaveProperty('value.center.y', 2)
const shape3 = Shape({
center: { x: 1, y: 2 },
radius: 1,
})
expect(shape3).toHaveProperty('type', 'Circle')
expect(shape3).toHaveProperty('typeName', 'Shape')
expect(shape3).toHaveProperty('value.center.y', 2)
})
`
оо
``
test('complex types', () => {
const Point = TypePoint({
x: Number,
y: Number,
})
const Line = TypeLine({
start: Point,
end : Point,
})
const Circle = TypeCircle({
center: Point,
radius: Number,
})
const Shape = UnionShape({
Line,
Circle,
})
const point1 = Point({ x: 1, y: 2 })
const point2 = Point({ x: 0, y: 10 })
const shape1 = Shape({
start: { x: 0, y: 0 },
end : { x: 1, y: 0 },
})
expect(shape1).toHaveProperty('type', 'Line')
expect(shape1).toHaveProperty('typeName', 'Shape')
expect(shape1).toHaveProperty('value.end.x', 1)
const shape2 = Shape({
center: point1,
radius: 1,
})
expect(Point.is({ x: 1, y: 2 })).toBe(true)
expect(Point.is(point1)).toBe(true)
expect(shape2).toHaveProperty('type', 'Circle')
expect(shape2).toHaveProperty('typeName', 'Shape')
expect(shape2).toHaveProperty('value.center.y', 2)
const shape3 = Shape({
center: { x: 1, y: 2 },
radius: 1,
})
expect(shape3).toHaveProperty('type', 'Circle')
expect(shape3).toHaveProperty('typeName', 'Shape')
expect(shape3).toHaveProperty('value.center.y', 2)
})
`
а что это за пакет?


Дмитрий
19.06.2017
14:20:33

Дмитрий
19.06.2017
14:20:45
https://github.com/zerobias/mezzanine/blob/master/test/union.test.js

Сергей
19.06.2017
14:21:48

Дмитрий
19.06.2017
14:23:37
Ты можешь написать поле { field: 'RangeError' } и будут матчиться любые объекты, имеющие это поле с данным значением
У меня серьёзная проблема описать в readme все те возможности, что я уже реализовал ?

Сергей
19.06.2017
14:27:43
У меня серьёзная проблема описать в readme все те возможности, что я уже реализовал ?
не у тебя одного такие проблемы
я завел себе привычку, писать в коммите описание того чт я сделал в подробностях
а недавно начал писать в conventional-commit + commitizen
генерирую понятный чейнджлог и стараюсь сразу писать описашку и примеры (но конечно не всегда так)
с течением времени я не теряю и не забываю никаких изменений и возможностей

Дмитрий
19.06.2017
14:30:41
Так у меня даже тесты описаны) Проблема в том, что они в принципе и звучат как мой ник для обычного человека ?

Сергей
19.06.2017
14:31:14

Gleb
19.06.2017
14:33:38
Привет, как менее грязно компоненту реюзать где возможна передача множества чайлдов и с доп. логикой?
Например
const SomeCmp = props => (
<div clas="random">
...
<DetailCmp
propCmp1={props.someVar === "val" ? <A {...props}/> :<B {...props}/>}
propCmp2={props.someVar2 === "val" ? <C {...props}/> :<D {...props}/>}
propCmp3={props.someVar3 === "val" ? <E {...props}/> :<F {...props}/>}
/>
...
);
В DetailCmp будут просто помещены компоненты передаваемые. В SomeCmp тоже логики кроме передачи нужных компонентов в DetailCmp нет, поэтому наверное HOC тут никак не поможет?
эти кейсы потом устанешь тестировать

Google

Artyom
19.06.2017
14:33:39
Кто-нибудь знает что-то лучше?
https://ant.design
В плане удобности внедрения \ поддержки и UI\UX для прользователя?

Сергей
19.06.2017
14:36:58
@ZeroBias сейчас ещё раз всмотрелся в mezzanine
и наверное буду юзать в одном из личных проектов
очень привлекательно выглядит
что с типизацией?
блин, очень жду когда запилят ts в бабель
чтобы генерить PropTypes и вот mezzanine из interface'ов

andretshurotshka?❄️кде
19.06.2017
14:39:19

Mike
19.06.2017
14:40:16

Сергей
19.06.2017
14:40:23

Admin
ERROR: S client not available

Mike
19.06.2017
14:41:00

Сергей
19.06.2017
14:41:31
тс же типы не прокидывает

Konstantin
19.06.2017
14:41:31

andretshurotshka?❄️кде
19.06.2017
14:41:33

Сергей
19.06.2017
14:41:54

andretshurotshka?❄️кде
19.06.2017
14:42:11
А mezzanine это не рантайм типы?)

Сергей
19.06.2017
14:42:30

Дмитрий
19.06.2017
14:42:46

andretshurotshka?❄️кде
19.06.2017
14:43:37

Дмитрий
19.06.2017
14:43:50

andretshurotshka?❄️кде
19.06.2017
14:45:22

Google

? ethorz
19.06.2017
14:47:31
есть const SortableList = SortableContainer(function({items, onSelect, disabled}) {
не понимаю как передать в него колбэк
где в родители используется this.state или this.setState

Сергей
19.06.2017
14:48:04
очень тебя прошу

Klim
19.06.2017
14:48:13
ор

Pasha
19.06.2017
14:50:15
жара) @ethorz у тебя голова не кипит там?) начни ты с learn.javascript.ru с 0 пройдись до конца за недельку не спеша. Самому будет приятней в разы и потом сразу понятно многое станет

? ethorz
19.06.2017
14:50:48
кипит, я спал 3 часа, мне можно

Сергей
19.06.2017
14:50:57

Konstantin
19.06.2017
14:50:58

Stepan
19.06.2017
14:51:14
Не задавай лишних вопросов

Сергей
19.06.2017
14:51:16

? ethorz
19.06.2017
14:51:38
нет, никаких ошибок нет

Konstantin
19.06.2017
14:51:48

Stepan
19.06.2017
14:51:50
А ты консоль пробовал открывать?)00000

? ethorz
19.06.2017
14:51:59
да, открыта
ошибка только на setState внутри обработчика

Сергей
19.06.2017
14:52:26
да, открыта
у тебя в промисах есть .then(() => {}, () => {}) или .catch(() => {}) ??