
Vladimir
23.05.2016
09:19:32
как-то после подобного вопроса в гиттере начался холивар на целый день https://gitter.im/MoscowJS/chat?at=571cad88d47413c07dccbe68

Евгений
23.05.2016
09:21:45

andretshurotshka?❄️кде
23.05.2016
09:24:02

Andrey
23.05.2016
09:24:50
в cycle.js сейчас выпиливают зависимость от rx.js и станет вполне норм

Google

Oleh
23.05.2016
12:24:40
ребят, почему может не работать хот-ролоад?
http://prntscr.com/b7epkz

Andrey
23.05.2016
12:26:04
потому что, все приложение нужно обновить и изменения это повлекли )

Oleh
23.05.2016
12:26:21
так он вообще не работает
любое изменение влечет за собой нужду обновлять всю страницу
если в конфиге вебпака указать entry: [
'webpack-hot-middleware/client?http://localhost:3000//__webpack_hmr&reload=true',
'./src/index'
],
reload=true то работает
но перезагружает всю страницу
а не так, как в dev-server только определенную компоненту

cloudo
23.05.2016
12:32:10
а раньше всё работало? может у тебя настроено что не так. посмотри на последний react-transform-boilerplate

Roman
23.05.2016
12:43:41
Есть вообще какие то компоненты на которых hmr работает?

Mikhail
23.05.2016
12:50:54
Я как-то по этой статье делал - все норм взлетело https://medium.com/@rajaraodv/webpacks-hmr-react-hot-loader-the-missing-manual-232336dc0d96

Oleh
23.05.2016
12:52:12
да потому что там dev-server, у меня на нем тоже работает
а у меня webpack-hot-middleware и webpack-dev-middleware

Google

Mikhail
23.05.2016
12:59:02
https://github.com/raquo/minimal-hapi-react-webpack/blob/master/src/webpack-dev-server.js

cloudo
23.05.2016
13:01:53
"просто посмотри как сделать в redux и сделай также" =)

Vladimir
23.05.2016
13:31:18
В репозитории draft-js используются особые имена классов, например (DraftEditor/editorContainer): https://github.com/facebook/draft-js/blob/master/src/component/base/DraftEditor.react.js#L216-L221
Но в продакшене в facebook они чудестным образом изменены: https://snag.gy/Q256MJ.jpg
Вопрос: как они это делают? Может где-то есть статейка об этом?
Чувствую что разгадка где-то рядом, но пока не могу найти) https://github.com/facebook/fbjs/blob/master/src/__forks__/cx.js#L12-L27

Andrey
23.05.2016
13:33:46
ты про уникальные имена классов? если да, то это css modules

Vladimir
23.05.2016
13:34:40
вероятно да, но как подменить имена классов draft-js в своем проекте?

from
23.05.2016
13:37:06

Vladimir
23.05.2016
13:40:14
со своими файлами все понятно, import s from './myStyles.css' и <div className={s.someClassName} />, но вот DraftEditor.react.js я не должен менять

cloudo
23.05.2016
13:44:28
https://facebook.github.io/draft-js/docs/advanced-topics-block-styling.html

Vladimir
23.05.2016
13:47:35
тут можно менять стили только блоков (html-тегов типа ol, ul, blackquote и тп), но нет api для переопределения имен классов используемых в 'DraftEditor.react.js'
Например как переопределить имя класса`DraftEditor/editorContainer` ? В их CSS-файле он кстати выглядит чуть по-другому: .DraftEditor-editorContainer

dimchez
23.05.2016
18:02:38
Коллеги, а кто-нибудь использует coding styleguide для React'а или ограничиваетесь только ESLint?

Paul
23.05.2016
18:11:05
^^ https://github.com/yannickcr/eslint-plugin-react#list-of-supported-rules

dimchez
23.05.2016
18:15:55

Kich
23.05.2016
18:43:49
https://github.com/benmosher/eslint-plugin-import

Dmitry
24.05.2016
07:46:39
В редаксе нельзя подписываться на какой-то фрагмент стора? Судя по тому, что находится в гугле - это нормальная практика следить за всем подряд, но на первый взгляд выглядит как оверхед

anoru
24.05.2016
07:47:15
mobx используй)

Dmitry
24.05.2016
07:47:52
С этим могут возникнуть проблемы в виде дедлайна)

S
24.05.2016
07:53:00

Google

Dmitry
24.05.2016
07:57:05
subscribe позволяет делать dispatch при изменении стейта

S
24.05.2016
07:57:38

Dmitry
24.05.2016
07:58:35
У меня форма, при изменении полей я сохраняю их значения в стейт и тут же надо ее засабмитить и получить данные
и соответственно их тоже в стор положить
из mapStateToProps я не дотянусь до dispatch, из mapDispatchToProps до стейта, поправь, если что-то не так)

Tim
24.05.2016
08:02:18
есть еще третий метод в коннекте
mergeProps
в нем есть все (:

Dmitry
24.05.2016
08:03:16
там же только переданные пропсы в нем?
ни диспатча, ни стейта всего

Tim
24.05.2016
08:04:43
ничто ведь не мешает выделить нужные кусочки из стейта и методы, и передать их в mergeProps

Dmitry
24.05.2016
08:05:52
ох и да) пальцы заплетаются, когда надо диспатч передавать в mergeProps )

Dmitry
24.05.2016
08:06:05
попробую)

S
24.05.2016
08:09:49

Dmitry
24.05.2016
08:10:38
Ну вот меня интересует пункт - делаешь сабмит)
Хочется сабмит не руками делать для каждого поля

S
24.05.2016
08:12:05
Так сделай экшен, который будет принимать тип и значение поля
Или как там у тебя

Dmitry
24.05.2016
08:13:08
И положить его в каждый компонент с филдом?)

S
24.05.2016
08:13:32
Эм

Google

S
24.05.2016
08:13:39
Не понял )

Dmitry
24.05.2016
08:14:13
Я не понимаю где тогда экшн диспатчить
В идеале хотелось, чтобы в одном месте этот диспатч лежал и тригерился при изменении определенных полей стейта

S
24.05.2016
08:15:18
У тебя каждый филд - отдельный компонент ?

Dmitry
24.05.2016
08:16:41
да, у каждого своя логика и формат их фрагмета в стейте
фрагмента*
какие-то саджестят, какие-то панельки открывают с дополнительным функционалом и т.д.

S
24.05.2016
08:18:11
Ну это хреново)

Admin
ERROR: S client not available

Dmitry
24.05.2016
08:18:27
:D

S
24.05.2016
08:19:41
Получается твои компоненты не реюзабельны

Dmitry
24.05.2016
08:20:41
Ну у меня есть глупые реюзабельные компоненты, которым пофиг на стейт вообще. А контейнеры завязаны на определенные кейсы.

Vladimir
24.05.2016
09:21:48
Вчера мне никто так и не подсказал как переопределить имена классов в Draft.js, так что если вдруг что вспомниться прошу сюда: https://github.com/facebook/draft-js/issues/413

from
24.05.2016
09:28:23

cloudo
24.05.2016
09:32:20
я так и не понял зачем их переопределять

Vladimir
24.05.2016
09:32:46
Сборка (draft-js$ npm run build) собирает просто в один файл, имена классов при этом не меняются
Чтобы иметь несколько по-разному стилизованных редакторов на одной странице же

cloudo
24.05.2016
09:33:33
конечно не меняются! ты же собираешь build либы... а рандомные classNames - результат сборки проекта, использующего эту либу
когда ты делаешь nom run build ты получаешь сбилденную либу, на этом этапе имена классов должны остаться оригинальными... она же не знает как будет использоваться, вдруг её через script подключат и всё

Vladimir
24.05.2016
09:35:45
так вопрос в том что нужно настроить в процессе сборки проекта, чтобы не менять оригинальные файлы либы

Google

cloudo
24.05.2016
09:36:00
а, я понял
а у тебя сейчас css modules как я понимаю используются?

Vladimir
24.05.2016
09:37:07
ага
а они как я понял переопределяют этот файл во время сборки проекта: https://github.com/facebook/fbjs/blob/master/src/__forks__/cx.js#L12-L27

cloudo
24.05.2016
09:39:32
{
test: /\.css$/,
exclude: /node_modules/,
loader: "style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]"
},
{
test: /\.css$/,
include: /node_modules/,
loader: "style!css-loader"
},
ну или что-то в этом роде, создай для node_modules отдельное правило

Vladimir
24.05.2016
09:41:13
Со стилями нет проблем, добавили лоадер и готово, как заставить Draft.js использовать измененные имена классов)

cloudo
24.05.2016
09:42:46
видимо никак, ты же сам дал ссылку... они в коде прописаны

Vladimir
24.05.2016
09:43:24
прописаны, но используют cx.js)

cloudo
24.05.2016
09:43:32
ну а если обернуть один эдитор в div.theme1 другой в div.theme2 и пиши в стилях как хочешь
переопределяй в зависимости от className родителя

from
24.05.2016
09:44:29

cloudo
24.05.2016
09:44:39
.theme1
.DraftEditor/root
...

Vladimir
24.05.2016
09:44:40
специфичностью селекторов то понятно что можно так сделать, хотелось бы узнать как они это делают на том же facebook.com

Denis
24.05.2016
12:06:48
Парни, какие есть способы автоматизированного тестирования UI (можно даже без привязки к React) в web? Что есть для тестов даже на mobile devices и IE8?

Igor
24.05.2016
12:09:25
selenium же
и gemini чтобы совсем круто было
https://github.com/gemini-testing/gemini

Denis
24.05.2016
12:12:57
про gemini Миша Ларченко рассказывал на Frontend Union Conf, они как раз им реакт компоненты тестируют
хм, или не gemini у них, но про тестирование UI он точно рассказывал)