
from
14.06.2016
13:28:31

Ivan
14.06.2016
13:37:14
import AssetLogo from './landing-assets/logo.svg';
export const Logo = props => <AssetLogo {...props}/>;;
в отдельном js

Tony
14.06.2016
13:45:11
как вы решаете проблему больших файлов? 170 строчек верстки jsx уже плохо читаются

Nikita
14.06.2016
13:45:53
разбивать на компоненты

Google

Tony
14.06.2016
13:46:32
это одна форма, дальше бить уже на label+input

Nikita
14.06.2016
13:47:38
например input + label завернуть в Input компонент

Dmitry
14.06.2016
13:48:06
И если однотипные, то можно даже реюзать :)

Nikita
14.06.2016
13:49:11
форма из 20 полей - не нормально ни в коде, ни в интерфейсе. Скорее всего есть какие-то группы, которые делаются через fieldset. Вот выносить такие в компоненты

Aleh
14.06.2016
13:50:00
кто как делает фильтры с websockets? Задача: отображается список элементов cud для которых прилетает по ws, список можно фильтровать большим числом параметров

Denis
14.06.2016
13:50:17
Интересно

Nikita
14.06.2016
13:53:25

Aleh
14.06.2016
13:55:57
ну да, в случае http для выборок get сервер у нас что-то вроде чистой функции, а в случае ws, при изменении\добавлении\удалении объекта ему надо сообразить кому что послать

Nikita
14.06.2016
13:56:59
а, ты хочешь риалтайм фильтр?

Aleh
14.06.2016
13:57:13
да
у нас до этого фильтров не было на списке(точнее были очень глобальные, решили разделением каналов), было все просто
тут что-то типа как у твиттера в лентах надо

Nikita
14.06.2016
13:58:43
гм, ну хранить на сервере для клиента фильтр, по апдейту собственно слать апдейт) Дифф да еще с условиями, не весело)

Google

Aleh
14.06.2016
13:59:04
вот да, мне просто показалось, что вроде бы задача типичная должна быть

Nikita
14.06.2016
13:59:43
я думаю у твиттера легко как-то сделано

Aleh
14.06.2016
13:59:58
у вк все просто, long-polling -_-

Nikita
14.06.2016
14:00:04
например спрашиваем у сервера раз в 10 сек что есть с так-то даты новенькое

Aleh
14.06.2016
14:00:46
стоп, у твиттера тоже long-polling

Nikita
14.06.2016
14:01:11
тебе надо решить, это полноценный дифф должен быть, или нет
например если твитт вчерашний удалится, надо его удалять из ленты? Я думаю твиттеру это не критично, например

Aleh
14.06.2016
14:02:06
у меня важна актуальность данных
надо будет померять еще, возможно событий в реалтайме не так много всех, что можно решение даже на клиенте принимать, показывать или нет и принимать все события

corpix
14.06.2016
14:06:24

from
14.06.2016
14:48:44

Ivan
14.06.2016
14:57:10

from
14.06.2016
14:57:24
ну в примере не написал

Ivan
14.06.2016
14:58:43
Смотри, в файле где экспортятся все свг так я пишу:
import React, {Component} from 'react';
import AssetLogo from './landing-assets/logo.svg';
export const Logo = props => <AssetLogo {...props}/>;;
Это прекрасно работает на клиенте, но когда я прогоняю на тестах, у меня валится эта ошибка

Ivan
14.06.2016
15:03:48
;;

Konstantin
14.06.2016
15:39:16
Кто знает, как прочитать даные из Relay store напрямую, имея на руках query и data ID?

hlomzik
14.06.2016
15:43:26
хотя свг-реакт все равно должен добавлять

S
14.06.2016
16:10:01

Google

Vladimir
14.06.2016
16:18:33
Либо, если в получившемся модуле react все-таки рекваерится, то возможно, что react указан в externals, и в этом случае опять-таки используется глобальная переменная React

Ivan
14.06.2016
17:26:25
В екстерналс указал, первое что сделал
оно под горячуу руку моке попадается видимо

Vladimir
14.06.2016
17:33:46
В екстерналс указал, первое что сделал
речь ведь идет о webpack?
для externals модулей webpack делает вот такую штуку:
/* 1 */
/***/ function(module, exports) {
module.exports = React;
/***/ },
и потом рекваерит ее:
var React = __webpack_require__(1);
И если у нас нет глобальной переменной React (что для тестового окружения, скорее всего так и есть), получится ReferenceError: React is not defined

Ivan
14.06.2016
19:07:11
Вот черт
Ну тогда для глупеньких - как настроить моку с реактом?

Alexey
14.06.2016
19:08:54
а в чем трудность?
мока обычный тест раннер
а для реакта есть react-addons-test-utils
который реализует нужные биндинги для компонентов

Alexey
14.06.2016
19:09:59
и куча абстракций над этой библиотекой
типо enzyme и т.п.
послее скорее даже свое решение

Евгений
14.06.2016
19:10:58
https://github.com/airbnb/enzyme/blob/master/docs/guides/mocha.md

Andrey
14.06.2016
19:40:01
AVA

Ҫѐҏӗѫӑ
14.06.2016
19:40:49
я вот тут совершенно случайно столкнулся с авой
в ней невозможно дебажить тесты
там чел из джетбрейнс чо-то пилит и пропадает потом

Google

Ҫѐҏӗѫӑ
14.06.2016
19:41:24
один pr закрыли уже
второй висит

Andrey
14.06.2016
19:41:56
хм. я чот видимо не натыкался ещё на такую проблему

Ҫѐҏӗѫӑ
14.06.2016
19:42:03
а так в принципе я о ней в лучшую сторону поменял мнение
но пока tape все равно ближе

Andrey
14.06.2016
19:42:35
она мне просто стек в консоль суёт еси что не так https://i.imgur.com/6o2K40S.png

Ҫѐҏӗѫӑ
14.06.2016
19:42:51
наткнулся тут https://github.com/acdlite/recompose/pull/196
там ссылка на тот висящий pr
в нем ссылка на предыдущий pr
в нем ссылка на issue

Admin
ERROR: S client not available

Andrey
14.06.2016
19:43:39
трабла только в рхжс?

Ҫѐҏӗѫӑ
14.06.2016
19:43:53
не, это понятно, что он выдает, но не всегда то, что нужно
трабла просто в жс
не важно

Dmitry
14.06.2016
19:44:42

Ҫѐҏӗѫӑ
14.06.2016
19:44:46
там не маунтится нода в энзиме
и надо задебажить
больше двойной вложенности не позволяет

Google

Ҫѐҏӗѫӑ
14.06.2016
19:45:42
там работают над спекой следующей
но оно как-то подвисло

Dmitry
14.06.2016
19:46:20
В организации хотят интеграцию с тимсити
Везде есть. А в ава нет. Только через TAP
Допустим

Ҫѐҏӗѫӑ
14.06.2016
19:47:37
да, это да
у нас xunit в дженкинсе выводит
вообще есть возможность tape тесты запускать параллельно тоже форками

Andrey
14.06.2016
19:48:18
чот не понял ничего что пишут в оп-посте.
https://github.com/acdlite/recompose/pull/196
это пошаговая инструкция чтобы сломать?

Ҫѐҏӗѫӑ
14.06.2016
19:48:48
оп пост — это что?
первый?

Andrey
14.06.2016
19:49:00
ага
Use rx-recompose-next branch: No RxJS dependency, depends on global Observable polyfill uses observables that conform to Observable spec and implement Symbol.observable
Rename createComponent to componentFromStream

Ҫѐҏӗѫӑ
14.06.2016
19:49:20
там суть в том, что раньше был отдельнй пакет rx-recompose
который работал только с rx

Andrey
14.06.2016
19:49:35
так

Ҫѐҏӗѫӑ
14.06.2016
19:50:26
Эндрю хочет влить это все в обычный recompose и сделать так, чтобы был Observable, а дальше уже типа юзаешь что хочешь
но я там его убедил что это неправильно
потому что rx — это не полифилл, а для инетропа есть специальный символ
и если его сделать, то можно из обзервабла текущей спеки сделать обзервабл любой либы
конец
но там что-то мост не работает (я начал писать тесты)