@react_js
React — русскоговорящее сообщество

Обсуждаем React.js и экосистему. См. также: @reactnative_ru, @apollo_ru, @protonnative_ru, @nodejs_ru, @js_ru, @uiux_ru Вакансии и поиск работы: @javascript_jobs Правила: http://bit.ly/our_etiquette Sponsored with ❤️ by www.axept.co

5822 members

Архив канала @react_js 5 мая 2016 г.

12:02:11 ДП
User 36743327
сервер
12:02:49 ДП
User 36743327
сервер сайд* хм, надо попробовать! спасибо)
12:04:05 ДП
User 104477
User 4627228
https://js.coach/
js.coach
Manually curated list of packages for React, Webpack and others.
А какую базу данных использует труЪ js-программист для своих проектов?
12:04:42 ДП
User 152745946
postgres/rethinkdb
12:08:33 ДП
User 104477
Но постгрес же РЕЛЯЦИОННЫЙ
12:08:52 ДП
User 104477
как бигдату-то на нем делать
12:20:43 ДП
User 152745946
а у тебя в проекте бигдата?
12:22:18 ДП
User 309556
постгрес збс
12:22:28 ДП
User 309556
rethink тоже
12:23:00 ДП
User 104477
User 152745946
а у тебя в проекте бигдата?
Конечно.
12:23:17 ДП
User 104477
User 309556
rethink тоже
Когда бирджыэс?
12:23:18 ДП
User 152745946
а чего сюда тогда вопросы задаешь?)
12:23:26 ДП
User 309556
сегодня
12:23:55 ДП
User 104477
User 309556
сегодня
Заебись.
12:24:02 ДП
User 152745946
rethink не такой збс, если искать много нужно:(
12:24:20 ДП
User 152745946
может я не правильно готовил, но прямо все плохо с фильтрацией
12:24:26 ДП
User 309556
и если писать все нужно быстро
12:24:30 ДП
User 309556
тогда riak надо
12:24:55 ДП
User 152745946
на совсем небольших объемах данных поднимает вообще все, что есть, грузит CPU 100:
12:25:15 ДП
User 309556
любой динамо-лайк тогда. риак самый норм
12:25:36 ДП
User 152745946
да не, я просто поиск в постгрю перенесу
12:25:41 ДП
User 309556
а для поиска эластик + постгресс ваще
12:26:10 ДП
User 152745946
поиск - это имеется ввиду банальная фильтрация
12:26:38 ДП
User 309556
банальная фильтрация в биг дате, не забывай)
12:26:46 ДП
User 152745946
filter({userId: 123}) - 100% CPU, getAll(123, {index: 'userId'}) - ваще плевать
12:26:54 ДП
User 152745946
я понимаю)
12:27:13 ДП
User 309556
в биг дате обычно писать важнее
12:27:13 ДП
User 152745946
но когда 1к записей - ожидаешь другого поведения
12:27:22 ДП
User 309556
чтобы ничо не проебалось
12:27:42 ДП
User 152745946
а читать последовательно можно?))
12:27:53 ДП
User 309556
а прочитать можно что пока что заиндексировалось
12:28:04 ДП
User 152745946
не, это какой-то тупняк исключительно rethinkа
12:28:07 ДП
User 309556
так в очередь в постгрю ту же
12:28:14 ДП
User 309556
пофиг ваще
12:28:48 ДП
User 152745946
хз, я rethink брал только ради changes()
12:29:01 ДП
User 152745946
оказалось для реальных задач это не всегда ок
12:29:29 ДП
User 309556
ваще надо брать хадуп и не выебываться имхо :)
12:29:34 ДП
User 309556
все придумали до нас
12:29:55 ДП
User 152745946
ты троллишь чтоль
12:30:20 ДП
12:31:03 ДП
User 309556
мапредюсить чем-то надо
12:31:19 ДП
User 309556
и писать быстро в фс
12:31:28 ДП
User 309556
короче там много чего есть
12:31:56 ДП
User 309556
зависит от того, что вкладывается в биг дату эту конкретную
12:44:12 ДП
User 309556
можно размазывать запись очередью типа кафки и писать норм в постгрес и эластик прикрутить и тоже норм будет
12:44:23 ДП
User 309556
(возможно)
12:47:23 ДП
User 309556
про биржс сегодняшний ссыль есичо
http://www.meetup.com/BeerJS-Moscow/events/230787172/
meetup.com/BeerJS-Moscow/events/230787172
New place this time! Help wanted to fix a bug https://github.com/beerjs/moscow/issues/8 Please take cash! See you!Join our chat https://gitter.im/beerjs/moscow
04:14:25 ДП
User 143141567
А вы React Компоненты пишете, наследуясь от базового React.Component? Или у вас есть какой-то свой кастомный класс Component с дополнительными методами?
06:22:20 ДП
User 143141567
https://geektimes.ru/post/234465/
geektimes.ru/post/234465
Думаю, многие, читающие эти строчки, на сегодняшний день видят, что прогресс с каждым днем ускоряется. Еще в начале XX века многие не верили в самолеты и...
06:22:26 ДП
06:22:51 ДП
User 143141567
одно дело флудить, когда чат не активный, другое мешать во время разговора по теме
06:25:37 ДП
User 192559518
имхо, не стоит делать из чатика строгий лагерь
будет скучно и сухо
06:27:57 ДП
User 23384802
https://leanpub.com/reactspeedcoding/read
07:10:05 ДП
User 143141567
ну говорят же "мирный атом"
07:21:29 ДП
User 187983007
ребят, никто не сталкивался с проблемой циклического редиректа в реакт-роутере на айфонах 6+ в хроме?
08:06:41 ДП
User 4627228
Как вам такая атьтернатива JSS-библиотеке? https://www.npmjs.com/package/aphrodite
npmjs.com/package/aphrodite
Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation
08:07:59 ДП
User 4627228
Нравится, что можно просто извлекать critical CSS
08:09:22 ДП
User 49750626
Привет, коллеги. Подскажите, кто чем пользуется на винде для правки кода из Atom, SublimeText, MS Code? Что-то не выходит у меня подсветку кода нормально настроить в ST и тратить на это время дальше как-то неохота.
08:14:42 ДП
User 56924675
в ST есть 100500 вариантов подсветок, которые ставят через package control и после выбора подходящий ассоцируешь ее с конкретными типами файлов
08:16:08 ДП
User 185980313
и атом и st и вебшторм нормально работают как и на маке)
08:20:09 ДП
User 4627228
Не вижу пока альтернативы WebStorm из-за его source code navigation
08:20:57 ДП
User 49750626
User 56924675
в ST есть 100500 вариантов подсветок, которые ставят через package control и после выбора подходящий ассоцируешь ее с конкретными типами файлов
в курсе. у меня такое извращение - JSX куски внутри HTML, для быстрого примера. Не подсвечиваются. Судя по инфе от babel - он должен тащить эту подсветку и всё же не тащит
08:27:45 ДП
User 104477
User 49750626
в курсе. у меня такое извращение - JSX куски внутри HTML, для быстрого примера. Не подсвечиваются. Судя по инфе от babel - он должен тащить эту подсветку и всё же не тащит
Они прямо произвольно внутри HTML, или в каком-то теге?
08:29:14 ДП
User 49750626
мин через 20 смогу ответить
08:33:24 ДП
User 49750626
<script type="text/babel">
08:45:43 ДП
User 101934369
User 4627228
Не вижу пока альтернативы WebStorm из-за его source code navigation
И рефакторинги!
08:50:15 ДП
User 86311207
да и терминал внизу удобно смотрится)
08:53:42 ДП
User 104477
User 49750626
<script type="text/babel">
Могу написать, как это сделать в Sublime. В конфиге для HTML по умолчанию (лежит в Packages\HTML.sublime-package\\HTML.sublime-syntax, это YAML) есть только поддержка простого вложенного JS (определяется по script без type или с type text/javascript). Нужно добавить в этот конфиг новый scope, указав в качестве открывающего маркера регулярку для script type text/babel, внутри изменить контекст на конфиг бабела: push:JavaScript (Babel).sublime-syntax

Подробнее в документации по расширению подсветки синтаксиса конкретного редактора :)
08:54:57 ДП
User 104477
User 49750626
в курсе. у меня такое извращение - JSX куски внутри HTML, для быстрого примера. Не подсвечиваются. Судя по инфе от babel - он должен тащить эту подсветку и всё же не тащит
По дефолту подсветка работает только в js и jsx-файлах, которые к HTML не имеют никакого отношения :)
08:55:04 ДП
User 49750626
вот вот
08:55:21 ДП
User 49750626
спасибо за наводку 👍🏻
08:55:25 ДП
09:00:45 ДП
User 138612574
приветствую. подскажите пожалуйста, где можно посмотреть тренинги семинары по Реакту? локация не имеет значения
09:09:45 ДП
User 104477
На каком основании заявляете?)
09:29:33 ДП
User 68520717
У стенфорда тоже есть онлайн-курсы
09:31:19 ДП
User 138612574
не, я именно вживую хочу
09:31:21 ДП
User 138612574
не онлайн
09:31:41 ДП
User 56364851
User 141822776
ребят, переписывайте всё на MobX, Redux уже не в тренде https://twitter.com/dan_abramov/status/723979142350417921
twitter.com/dan_abramov/status/723979142350417921
Unhappy with Redux? Try MobX: https://t.co/7urLgKA9hZ
а потом все на cycle)
09:49:19 ДП
User 1340580
User 56364851
а потом все на cycle)
Спустя почти две недели реплаишь :D
09:57:15 ДП
User 4627228
User 141822776
ребят, переписывайте всё на MobX, Redux уже не в тренде https://twitter.com/dan_abramov/status/723979142350417921
twitter.com/dan_abramov/status/723979142350417921
Unhappy with Redux? Try MobX: https://t.co/7urLgKA9hZ
Он мне так напоминает Knockout.js :)
10:04:15 ДП
User 597730
в ридми написано, он им вдохновлялся
10:18:37 ДП
User 56364851
а есть те кто реально попробовал что-то с cyclejs впечатлился или не очень? только конкретнее
10:19:48 ДП
User 4627228
О, точно
10:19:57 ДП
User 4627228
MobX is inspired by reactive programming principles found in spreadsheets. It is inspired by MVVM frameworks like in MeteorJS tracker, Knockout and Vue.js. But MobX brings Transparent Functional Reactive Programming to the next level and provides a standalone implementation. It implements TFRP in a glitch-free, synchronous, predictable and efficient manner.
10:24:23 ДП
User 185980313
для mobx уже даже есть devtools от redux
10:54:10 ДП
User 4627228
Коллеги, кто каких правил придерживается в рабочем процессе и работе с задачами, чтобы поддерживать высокую производительность?
11:06:30 ДП
User 187983007
четко планировать последовательность решений задач, не распыляться между задачами
11:07:44 ДП
User 187983007
всегда пытаться довести задачу до определенного завершения, хотя бы завершения подзадачи, чтобы казалось, что ты справляешься со всем, немного мотивирует
11:10:25 ДП
User 139070619
Правило №1. Читать телеграм только после работы. Не всегда получается)
Правило №2. Pomodoro
11:15:17 ДП
User 143141567
User 139070619
Правило №1. Читать телеграм только после работы. Не всегда получается)
Правило №2. Pomodoro
Некоторые задачи нельзя выполнить за конкретный временной период, тем более выполнить их до какого-то законченного результата, поэтому такие техники с четкими временными рамками немного странными кажутся. Ну для меня, потому что мне взять и оборвать дело на середине очень сложно
11:17:23 ДП
User 187710551
Для меня самое главное дробить задачи на очень мелкие подзадачи так проще понять с какого конца начать решать большую, и все всегда записывать хотябы на бумажку а лучше конечно в трекер
11:20:21 ДП
User 139070619
User 143141567
Некоторые задачи нельзя выполнить за конкретный временной период, тем более выполнить их до какого-то законченного результата, поэтому такие техники с четкими временными рамками немного странными кажутся. Ну для меня, потому что мне взять и оборвать дело на середине очень сложно
Так и есть, сразу непривычно, но потом входит в привычку. Ну и в последние минуты лучше всего собираешься, если хочешь успеть закончить хотя бы основное до перерыва.
11:22:13 ДП
User 178689889
Мне очень помогает привычка доставать ПМ'ов расспроссами, чтобы они как можно точнее и детальнее описали задачу. Порой это помогает и им
11:22:52 ДП
User 143141567
User 139070619
Так и есть, сразу непривычно, но потом входит в привычку. Ну и в последние минуты лучше всего собираешься, если хочешь успеть закончить хотя бы основное до перерыва.
Пробовал такое делать с зарядкой для глаз, каждый час 10 минут выделял на отдых глазам, но потом стал отодвигать эти 10 минут ,потому что задача жуть как интересная, и отвлекаться не хочется или банально не хотелось бросать все на пол строчки. Так вот около 2-3 недель держался, потом забросил. Сейчас просто пью витамины для глаза, отдыха каждый час уже не делаю
11:23:30 ДП
User 143141567
Может надо привыкнуть к тому, что каждые 30 минут, 5 выделять на отдых, но мне это казалось каким-то минидедлайном, от которого только стресс появлялся:D
11:29:23 ДП
User 139070619
Все это до боли знакомо, главное втянуться, я так последние года 2 работаю, периодами забрасывя. Вопрос еще как задачи разбиты - если видишь, что задача на более чем 25 минут, нужно дробить.
11:30:35 ДП
User 143141567
Как-нибудь попробую эту технику, может на второй раз получится привыкнуть
11:31:57 ДП
User 39182759
User 4627228
Коллеги, кто каких правил придерживается в рабочем процессе и работе с задачами, чтобы поддерживать высокую производительность?
pomodoro!
12:58:57 ПП
User 152745946
User 4627228
Как вам такая атьтернатива JSS-библиотеке? https://www.npmjs.com/package/aphrodite
npmjs.com/package/aphrodite
Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation
а у тебя были реальные проекты, где jss был нужен?
01:21:38 ПП
User 56924675
парни, а кто-нибудь переводил jade на pug ?
01:21:51 ПП
User 1340580
А они разные?
01:21:54 ПП
User 56924675
все решается переименованием или что-то надо править в синтаксисе
01:22:04 ПП
User 56924675
ну вот в этом и вопрос)
01:22:17 ПП
User 1340580
Насколько я знаю – только имя.
01:22:40 ПП
User 56924675
User 1340580
Насколько я знаю – только имя.
ок, это гуд) спс
01:23:04 ПП
User 1340580
User 56924675
ок, это гуд) спс
По крайней мере в новостях так и было написано – переименовался. Апи не меняли.
01:42:18 ПП
User 178689889
В редакторах только нужно установить jade-синтаксис на pug файлы, а в остальном различий нет.
01:42:55 ПП
User 185980313
а зачем переименовали проект?
01:43:51 ПП
User 139070619
торговая марка есть https://www.jadeworld.com/
02:01:23 ПП
User 148175028
Парни, кто использовал react-intl, он умеет собирать все фразы в файл для перевода. Как это к примеру умеет i18next-parser. Не совсем понимаю как с react-intl получить все фразы для перевода в один файл
02:09:01 ПП
User 162236709
https://www.youtube.com/watch?v=wVo9Vdpk23g
youtube.com/watch?v=wVo9Vdpk23g
Windows 10 is the best version of Windows yet, and is now running on 300 million active devices. Watch Bryan Roper from the Windows team run through the 10 t...
02:19:33 ПП
User 148175028
По поводу сборщика — нашел только babel плагин, но он к примеру не может работать к примеру с php файлами.
02:55:03 ПП
User 4627228
User 152745946
а у тебя были реальные проекты, где jss был нужен?
Это проекты на React Native 😈
02:55:56 ПП
User 152745946
так там свой StyleSheet вроде?
02:56:31 ПП
User 4627228
Так нет
02:56:39 ПП
User 4627228
Почти тот же JSS
02:57:29 ПП
User 4627228
Он отличается, конечно, но не больше, чем похож
03:13:00 ПП
User 162236709
будет мусор для нищеброда
03:13:37 ПП
User 162236709
и да, ничего не активируется на 10
03:42:06 ПП
User 152992735
а кто-нибудь сталкивался с WrongDocumentError при тестировании реактовых компонентов?
когда просто рендеришь компонент, то все замечательно, но если нужно немного поменять дом, то валится вот эта ошибка
03:42:46 ПП
User 152992735
под поменять дом я имею в виду поменять стейт, в результате чего реакт должен поменять дом
03:45:44 ПП
User 152992735
если грохнуть кеш require перед запуском проблемных тестов, то все становится ок. но хотелось бы более адекватное решение
05:54:36 ПП
User 1340580
Призываю в чатик любителей cssModules. Интересует composition. Например, кнопка, может быть нормальной, активной, зеленой (здесь все понятно, .active { composes: normal }), но как быть когда нужно больше модификаторов? Например активная, и среднего размера? Есть топик, но я не до конца понял мысль: http://stackoverflow.com/questions/34324461/css-module-composition

Как быть?
stackoverflow.com/questions/34324461/css-module-composition
I've got a question about composition I'm hoping someone can help me with. I'm using react-css-modules with Sass, and I'd like to know the best way to compose things for one of our basic bottom-level
06:21:52 ПП
User 129154205
всем привет. Никто ava + react-toolbox не юзал? Можете подсказать, а то никак завести не могу
06:34:16 ПП
User 129154205
Одним словом, проблема вот в чем:
Решил использовать  ava для тестирования, настраиваю окружение. В тесте юзается компонент, который в свою очередь подключает компонент из react-toolbox. При запуске в этом компоненте получаю ошибку

Cannot find module './style'
 конфиг ava в package.json
"ava": {
    "files": [
      "app/**/*.spec.js"
    ],
    "source": [
      "app/**/*.{js,jsx}",
      "!dist/**/*"
    ],
    "match": [],
    "failFast": false,
    "tap": true,
    "require": [
      "babel-register"
    ],
    "babel": {
      "presets": [
        "es2015",
        "react"
      ],
      "plugins": [
        [
          "babel-plugin-webpack-loaders",
          {
            "config": "./webpack/ava.config.js"
          }
        ]
      ]
    }
  }
 содержимое  ava.config.js
import path from 'path';

export default {
  output: {
    // YOU NEED TO SET libraryTarget: 'commonjs2'
    libraryTarget: 'commonjs2',
  },
  module: {
    loaders: [{
      test: /\.styl$/,
      loader: 'style!css!stylus?resolve url'
    },
      // Для react-toolbox
      {
        test: /(\.scss|\.css)$/,
        loader: ['style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 'sass?sourceMap']
      }]
  },

  resolve: {
    extensions: ['', '.scss', '.css','.json']
  }

};
Заранее спасибо всем неравнодушным =)
06:36:59 ПП
User 151230728
Коллеги, продолжаем искать интересных докладчиков из сообщест, а не из пиарных контор http://devconf.ru/ru/offers/js
06:52:02 ПП
User 156544965
User 1340580
Призываю в чатик любителей cssModules. Интересует composition. Например, кнопка, может быть нормальной, активной, зеленой (здесь все понятно, .active { composes: normal }), но как быть когда нужно больше модификаторов? Например активная, и среднего размера? Есть топик, но я не до конца понял мысль: http://stackoverflow.com/questions/34324461/css-module-composition

Как быть?
stackoverflow.com/questions/34324461/css-module-composition
I've got a question about composition I'm hoping someone can help me with. I'm using react-css-modules with Sass, and I'd like to know the best way to compose things for one of our basic bottom-level
в этом проблема цсс модулей, там нет модификаторов / состояний и все, по сути, сводится к набору нескольких классов
06:52:35 ПП
User 1340580
User 156544965
в этом проблема цсс модулей, там нет модификаторов / состояний и все, по сути, сводится к набору нескольких классов
И как быть? Забить хуй и юзать его как маппинг классов с хешами?
06:53:32 ПП
User 1340580
Просто сейчас все сводится именно к этому, есть sass/postcss, а cssmodules – для связки.
06:53:42 ПП
User 1340580
Почему об этом не говорят?
07:03:32 ПП
User 156544965
User 1340580
И как быть? Забить хуй и юзать его как маппинг классов с хешами?
¯\_(ツ)_/¯ решения лучше еще не нашли
07:14:33 ПП
User 63637623
User 1340580
Призываю в чатик любителей cssModules. Интересует composition. Например, кнопка, может быть нормальной, активной, зеленой (здесь все понятно, .active { composes: normal }), но как быть когда нужно больше модификаторов? Например активная, и среднего размера? Есть топик, но я не до конца понял мысль: http://stackoverflow.com/questions/34324461/css-module-composition

Как быть?
stackoverflow.com/questions/34324461/css-module-composition
I've got a question about composition I'm hoping someone can help me with. I'm using react-css-modules with Sass, and I'd like to know the best way to compose things for one of our basic bottom-level
не понял в чем проблема
Просто же через пробел перечисляешь то, что нужно
07:15:07 ПП
User 1340580
User 63637623
не понял в чем проблема
Просто же через пробел перечисляешь то, что нужно
В этом и проблема, что это не документировано.
07:15:14 ПП
User 63637623
composes: normal medium from '../button.css';
07:15:47 ПП
User 1340580
О, и что, мне N классов перелинковывать между собой?
07:15:48 ПП
User 63637623
а если надо из разных файлов че-то взять, что разными строчками пишешь)
07:16:00 ПП
User 63637623
User 1340580
О, и что, мне N классов перелинковывать между собой?
в смысле?
07:16:03 ПП
User 1340580
Да это же бред.
07:16:08 ПП
07:16:30 ПП
User 1340580
композить все варианты – точно не вариант.
07:16:48 ПП
User 63637623
вот http://glenmaddern.com/articles/css-modules

там правда почти до абсурда доведено, но суть в том, что композиция на то и композиция — позволяет очень точно взять то, что нужно
07:17:29 ПП
User 63637623
и вот такую херню можно городить, если хочется
07:17:41 ПП
User 63637623
.masthead {
  composes: serif bold 48pt centered from "./typography.css";
  composes: paragraph-margin-below from "./layout.css";
}
07:17:49 ПП
User 63637623
а если не хочется — можно не городить ;)
07:18:57 ПП
User 1340580
Все эти примеры – вакуум, я их перечитал несколько раз, нигде нет примера когда у них больше одно модификатора.
07:19:30 ПП
User 63637623
не понял, какого модификатора?
07:19:41 ПП
User 63637623
composes: normal medium from '../button.css'; — ты не про это разве?
07:20:10 ПП
User 1340580
Смотри, есть normal, active, disabled, и есть sizes – s m l lg, мне надо каждый перелинковать из этого набора.
07:20:23 ПП
User 1340580
User 63637623
composes: normal medium from '../button.css'; — ты не про это разве?
А дальше?
07:20:46 ПП
User 1340580
normal small
normal medium
normal large
normal xlarge

active small.... и так далее?
07:21:02 ПП
User 63637623
Что значит перелинковать?
07:21:35 ПП
User 156544965
собрать все возможные комбинации в классы, я так понимаю?
07:21:45 ПП
User 1340580
User 156544965
собрать все возможные комбинации в классы, я так понимаю?
Да!
07:21:57 ПП
User 1340580
Это же дешевле через classnames делать
07:25:04 ПП
User 1340580
И еще – как импортировать переменные? (cssnext) Через @value плагин?
07:26:22 ПП
User 1340580
Других способов нет?
07:27:14 ПП
User 1340580
Я об этом: https://github.com/css-modules/postcss-modules-values
github.com/css-modules/postcss-modules-values
postcss-modules-values - Pass arbitrary constants between your module files
07:29:54 ПП
User 63637623
User 1340580
Это же дешевле через classnames делать
думаю, легче всё-таки два-три класса написать, чем создавать кучу классов вида .ActiveSmallLoadingSecondary
07:32:05 ПП
User 1340580
User 63637623
думаю, легче всё-таки два-три класса написать, чем создавать кучу классов вида .ActiveSmallLoadingSecondary
Это понятно что легче, концепция рушится. Раз пятый берусь разобраться в нем за последний год – никаких изменений, проблемы все те же, кейсов больше не стало, все говорят об одном и том же, что все хорошо, а это не так.
07:32:42 ПП
User 63637623
ну первоочередная проблема-то в изолировании имён, а композиция — так, плюшки)
07:35:09 ПП
User 1340580
Хорошо, имена изолировали, как быть с переменными?
07:35:27 ПП
User 1340580
https://github.com/css-modules/postcss-modules-values

Так?
github.com/css-modules/postcss-modules-values
postcss-modules-values - Pass arbitrary constants between your module files
07:38:43 ПП
User 63637623
а сейчас как импортируешь? через @import?
07:40:37 ПП
User 1340580
Сейчас sass, хочу изолировать переменные.
07:41:14 ПП
User 1340580
Не найду информации как импортировать правильно перменные из cssnext: https://github.com/MadLittleMods/postcss-css-variables
github.com/MadLittleMods/postcss-css-variables
PostCSS plugin to transform CSS Custom Properties(CSS variables) syntax into a static representation - MadLittleMods/postcss-css-variables
07:42:17 ПП
User 1340580
(только через @import "./vars.css")
07:47:31 ПП
User 63637623
User 1340580
https://github.com/css-modules/postcss-modules-values

Так?
github.com/css-modules/postcss-modules-values
postcss-modules-values - Pass arbitrary constants between your module files
по-моему этот плагин не имеет отношения к импорту
и чем тебя не устраивает @import "./vars.css"?
07:48:45 ПП
User 1340580
Хочу import red as someprefix-red from colors
07:48:53 ПП
User 60673894
Где можно нормальный date range найти?
07:49:12 ПП
User 1340580
Этот плагин как раз такое и позволяет.
07:50:16 ПП
User 63637623
User 1340580
Хочу import red as someprefix-red from colors
мне кажется для такого лоадер нужен специальный, а не плагин для переменных
07:54:31 ПП
User 1340580
User 63637623
мне кажется для такого лоадер нужен специальный, а не плагин для переменных
Возможно, надо еще думать как все это организовывать.
07:55:34 ПП
User 5757689
User 60673894
Где можно нормальный date range найти?
Попробуй этот - довольно гибкий календарь
https://github.com/gpbl/react-day-picker
Вот пример для диапазона дат 
http://www.gpbl.org/react-day-picker/examples/#range
github.com/gpbl/react-day-picker
Flexible date picker for React. Contribute to gpbl/react-day-picker development by creating an account on GitHub.
07:57:14 ПП
User 60673894
ага, вроде что нужно, спасибо
08:24:31 ПП
User 89478045
Коллеги, кто знает как тестировать компоненты, обернутые в react-router? Mocha, поднимаем в phantomJS
08:27:30 ПП
User 152745946
history фейковый подсунуть
08:28:35 ПП
User 156544965
const history = createMemoryHistory(location);
08:33:34 ПП
User 104477
Бля, я уж думал
08:35:05 ПП
User 104477
Увидел имя Sergey, решил, что это @chicoxyzzy пьяный с набережной вещает
08:36:31 ПП
08:36:53 ПП
08:37:25 ПП
User 89478045
А в тестах оборачивать в роутинг?
09:12:53 ПП
User 104477
BeerJS официально самая крупная конференция разработчиков в стране.

Реакт ты можешь и не знать, но BeerJS'ом быть обязан
09:14:51 ПП
09:22:00 ПП
User 108543364
а в каком случае данные нужно хранить в редаксе, а в каком нет?
09:22:47 ПП
User 89478045
Конкретизируй =)
09:25:58 ПП
User 108543364
я с коллегами прочитал мануал по редаксу и нашел там типа такие штуки:
dispatch({
      type: 'LOAD_POSTS_REQUEST',
      userId
    })
теперь у нас каждая фича выглядит монструозно, с кучей редьюсеров и экшенов. Вопрос, зачем писать экшены и редьюсеры, если например данные по загрузке нужны только внутри компонента (показать спиннер)
09:28:25 ПП
User 156544965
для соблюдения основного смысла единого стейта и тестирования
09:28:28 ПП
User 156544965
нет смысла использовать редакс, если вы считаете что он не нужен
09:28:36 ПП
User 152745946
у меня тоже был такой вопрос, когда начинал редакс изучать
09:28:47 ПП
User 152745946
это полезно с разных точек зрения
09:28:51 ПП
User 108543364
ну я действительно считаю, что это ооочень замедляет разработку
09:29:03 ПП
User 152745946
например если интернет отвалится - у пользователя будет доступен старый контент
09:29:15 ПП
User 156544965
зато упрощает поддержку :)
09:29:21 ПП
User 108543364
компоненты хер пойми зачем шарят данные в стейти нужные только им самим
09:29:37 ПП
User 152745946
надо просто мозги немного в другую сторону повернуть
09:29:50 ПП
User 108543364
User 156544965
зато упрощает поддержку :)
наоборот, проще поддерживать компонент, который инкапсулирует все в себя
09:30:24 ПП
User 152745946
через 2-3 итерации это будет монстр, а не компонент
09:30:29 ПП
User 108543364
User 152745946
надо просто мозги немного в другую сторону повернуть
Я вот пытаюсь) Только плюсов кроме релизиозности в его вел-ву Редасу не вижу)
09:30:42 ПП
User 152745946
ну только что назвал тебе плюс
09:30:52 ПП
User 108543364
почему монстр?
09:31:19 ПП
User 152745946
ну потому что у тебя компонент-контроллер становится здоровенный
09:31:25 ПП
User 152745946
появляются неявные зависимости
09:31:32 ПП
User 108543364
контроллер - это бизнес-логика
09:31:32 ПП
User 156544965
данные фетчатся каждый раз при маунте компонента? а что если потребуется два таких на странице?
09:31:57 ПП
User 108543364
User 156544965
данные фетчатся каждый раз при маунте компонента? а что если потребуется два таких на странице?
вот когда их понадобится два, тогда и нужен редакс :)
09:32:30 ПП
09:32:35 ПП
User 152745946
с флаксом тоже самое
09:32:53 ПП
User 152745946
тут смысл в том, что данные отдельно, вью отдельно
09:33:09 ПП
User 152745946
особенно с точки зрения тестирования
09:33:35 ПП
User 152745946
ты сможешь получить компонент в любом состоянии с минимумом магии если все проходит цикл флакса/редакса
09:33:38 ПП
User 108543364
ну а как всякие material-ui тестируются
09:34:26 ПП
User 108543364
User 152745946
ты сможешь получить компонент в любом состоянии с минимумом магии если все проходит цикл флакса/редакса
а зачем мне это нужно? тут главная проблема, что очень много бойлерплейт кода, чтобы показать спиннер
09:34:44 ПП
User 152745946
внутри ui иметь стейт на мой взгляд норм
09:35:09 ПП
User 108543364
т.е. только бизнес-логика должна лежать в сторе, верно?
09:35:12 ПП
User 152745946
не вижу много бойлепрейт кода
09:35:31 ПП
User 152745946
сделай себе миддлвары/экшн генераторы
09:35:38 ПП
User 156544965
бизнес логику лучше в мидлвейры или в саги (если используются)
09:35:39 ПП
User 152745946
которые будут кидать pending состояния сами
09:36:08 ПП
User 152745946
у меня редьюсеры сами обрабатывают ошибки и пендинги
09:36:21 ПП
User 152745946
остается только в реакте их рендрить
09:36:31 ПП
User 108543364
User 152745946
у меня редьюсеры сами обрабатывают ошибки и пендинги
редьюсеры ничего не должны обрабатывать)
09:36:49 ПП
User 152745946
я имею ввиду я сам не пишу return {...state, penging: true}
09:37:00 ПП
User 152745946
за меня это делает небольшая обертка, которую я написал 1 раз
09:37:15 ПП
User 108543364
у тебя pending один на все приложение?
09:39:28 ПП
User 152745946
нет конечно
09:39:31 ПП
User 152745946
на 1 редьюсер
09:39:39 ПП
User 152745946
редьюсеры можно друг в друга вкладывать
09:40:22 ПП
User 108543364
а можешь поподробнее написать?
09:41:14 ПП
User 152745946
function createReducer(initialState, actionHandlers) {
  return (state = initialState, { type, payload, error, meta }) => {
    const handler = actionHandlers[type];
    if (!handler) {
      return state;
    }

    if (error) {
      return {
        ...state,
        error: payload,
        pending: false
      };
    }

    if (meta) {
      if (meta.pending) {
        return {
          ...state,
          pending: true,
          error: false
        };
      }
    }

    return {
      ...state,
      error: false,
      ...handler(payload, state, meta),
      pending: false
    };
  };
}

export default createReducer;
09:42:09 ПП
User 152745946
const user = createReducer({
  authorized: false,
  registerPassed: false,
  form: {}
}, {
  [USER_LOGIN]: onLogin,
  [USER_LOGOUT]: onLogout,
  [USER_REGISTER]: onRegister,
  [USER_DESTROY]: onLogout,
  [USER_FETCH]: onFetch,
  [USER_UPDATE]: onFetch
});
09:55:09 ПП
User 108543364
User 152745946
function createReducer(initialState, actionHandlers) {
  return (state = initialState, { type, payload, error, meta }) => {
    const handler = actionHandlers[type];
    if (!handler) {
      return state;
    }

    if (error) {
      return {
        ...state,
        error: payload,
        pending: false
      };
    }

    if (meta) {
      if (meta.pending) {
        return {
          ...state,
          pending: true,
          error: false
        };
      }
    }

    return {
      ...state,
      error: false,
      ...handler(payload, state, meta),
      pending: false
    };
  };
}

export default createReducer;
а meta.pending в middlewares ставится/снимается?
10:00:41 ПП
User 108543364
User 152745946
function createReducer(initialState, actionHandlers) {
  return (state = initialState, { type, payload, error, meta }) => {
    const handler = actionHandlers[type];
    if (!handler) {
      return state;
    }

    if (error) {
      return {
        ...state,
        error: payload,
        pending: false
      };
    }

    if (meta) {
      if (meta.pending) {
        return {
          ...state,
          pending: true,
          error: false
        };
      }
    }

    return {
      ...state,
      error: false,
      ...handler(payload, state, meta),
      pending: false
    };
  };
}

export default createReducer;
блин, почему то у меня до сих пор была логика switch/case type, матчится на другие вещи в action не думал
10:37:55 ПП
User 4627228
Парни, а кто чем логирование на клиенте и сервере реализует? Есть альтернативы bunyan?
10:40:15 ПП
User 12791
я логгер изоморфный писал год назад гдето
10:40:19 ПП
User 12791
для изоморфногореакт аппа
10:40:36 ПП
User 4627228
а я два
10:40:53 ПП
User 4627228
но у решений типа bunyan есть плюсы
10:41:02 ПП
User 4627228
можно из коробки подключать разные коннекторы
10:41:08 ПП
User 12791
но им только на сервере же
10:41:26 ПП
User 4627228
изоморфно же :)
10:41:35 ПП
User 12791
что-то поменялось значит :)
10:41:39 ПП
User 12791
я на https://github.com/brophdawg11/JsChannels
github.com/brophdawg11/JsChannels
JsChannels - A minimal JavaScript Channels library
10:41:54 ПП
User 12791
запилил.. и канал открывал client->server или server->server
10:43:37 ПП
10:44:12 ПП
User 12791
а воще еси bunyan с клиента писать может то больше ничего не нужно
10:44:24 ПП
User 12791
на другом конце можно разные ридеры втыкать и редиректить
10:44:29 ПП
User 12791
в splunk или куда угодно
10:45:26 ПП
User 4627228
Поднял исходники, выглядело это как-то так)
10:45:38 ПП
User 4627228
но это уже на ES6
10:46:25 ПП
User 4627228
+ там надо было конфиг webpack доработать
10:48:25 ПП
User 12791
так а logger-client куда все это шлет кроме консоли?
10:48:46 ПП
User 4627228
new webpack.IgnorePlugin(/(logger-server|data-sources|migrations|shared-collections|project-info|server-router)$/),
10:49:02 ПП
User 4627228
Куда угодно можно прикрутить)
10:49:43 ПП
User 4627228
Сейчас вот будем прикручивать к logstash
10:49:44 ПП
User 12791
ну вобще да.. когда raw event есть с ним что угодно делать можно
10:49:50 ПП
User 4627228
в этом и плюс
11:45:32 ПП
User 4627228
Классно
11:45:32 ПП
User 4627228
https://atom.io/packages/js-hyperclick
atom.io/packages/js-hyperclick
A hyperclick provider that lets you jump to where variables are defined.
11:45:40 ПП
User 4627228
Оказывается можно
11:45:57 ПП
User 4627228
Есть ли для Atom хороший Git инструмент, как в WebStorm?