
Oleg
03.05.2018
10:34:36
Только standalone, fullscreen и minimal-ui работают

Valeriy
03.05.2018
10:34:39
просто адаптер другой подключил и все

Artem
03.05.2018
10:35:30

Valeriy
03.05.2018
10:35:57

Google

Valeriy
03.05.2018
10:36:26
в нем вся логика формы сидит, это отслеживание через onChange с низов значений, валидация, onblur/onfocus также
сами по себе компоненты только знают как себя encode/decode сделать из модели данных
я полностью контролирую компоненты
селекты в том числе

Alex
03.05.2018
10:37:54
не, просто ты не столкнулся с теми кейсами с которыми я

Valeriy
03.05.2018
10:38:01
как только он отрисовался, я об этом сразу наверху знаю

Artem
03.05.2018
10:38:15
грубо говоря, у меня Select просто рассылает пропсы вниз
обратка идет через ивент пропсы тупых
тупые ни к чему доступ не имеют, но наверно да у меня подход другой)
я просто подумал гляда на твое, что может наделить child возможностями, но почему то думаю что это запутает меня)

Valeriy
03.05.2018
10:39:59
вот у меня для простого тупого селекта обертка

Google

Valeriy
03.05.2018
10:40:01
на выходе имеем обернутый <input type="select">...</select> с кучей <option ...>...</option>

Alex
03.05.2018
10:40:51
=> рендер формы
=> поле маунтится в форму оставляя ссылку
=> пришли данные ререндер формы
=> на этом этапе мы имеем старый снапшот значений полей, т.к. поля ещё не обновились и мы не знаем изменилось ли у них значение

Valeriy
03.05.2018
10:41:11
хок SelectField умеет кодировать/декодировать модель данных в правильные пропсы для селекта
это регулируется getter/setter

Alexander
03.05.2018
10:42:00
import { createAction, createReducer } from 'redix-act';
const send = createAction('[Callback] Send');
const loading = createAction('[Callback] Loading');
const error = createAction('[Callback] Error');
const success = createAction('[Callback] Successfull');
const reducer = createReducer({
[loading]: (state) => ({
...state,
loading: true
}),
[error]: (state, message) => ({
...state,
loading: false,
status: 'ERROR',
error: message
}),
[success]: (state) => ({
loading: false,
status: 'OK'
})
}, {
loading: false,
status: null,
error: '',
});
Здесь вообще всё нормально?

Alex
03.05.2018
10:42:07
для этого в гетере нужно знать о значении пропа multiple

Valeriy
03.05.2018
10:43:38
import { createAction, createReducer } from 'redix-act';
const send = createAction('[Callback] Send');
const loading = createAction('[Callback] Loading');
const error = createAction('[Callback] Error');
const success = createAction('[Callback] Successfull');
const reducer = createReducer({
[loading]: (state) => ({
...state,
loading: true
}),
[error]: (state, message) => ({
...state,
loading: false,
status: 'ERROR',
error: message
}),
[success]: (state) => ({
loading: false,
status: 'OK'
})
}, {
loading: false,
status: null,
error: '',
});
Здесь вообще всё нормально?
что ты хочешь услышать то?: ))

Alexander
03.05.2018
10:44:07

Valeriy
03.05.2018
10:44:22

Alex
03.05.2018
10:44:38
тогда норм, а почему не через проп?
они же больше ничем не отличаются

Valeriy
03.05.2018
10:44:53

Alex
03.05.2018
10:45:24
ну типа можно одним компонентом select обойтись, просто если есть проп multiple то меняется геттер

Artem
03.05.2018
10:45:42
во во меня это сразу остановило, логика усложняется, тебе под каждый тип надо свой адаптер пилить, а можно сверху хоку регистрировать какие данные он куда отправить может и по сути тогда в хокам тупых комопнентах нет нужны

Valeriy
03.05.2018
10:45:42
так сразу понятно и наглядно
чем не заметить этот пропс в груде атрибутов

Google

Alex
03.05.2018
10:46:14

Valeriy
03.05.2018
10:46:30
тем более что выглядят они по разному и функциональность и модель данных разная у них

Alex
03.05.2018
10:46:52

Artem
03.05.2018
10:46:53

Valeriy
03.05.2018
10:47:20
а наляпал адаптеров на все случаи жизни и живи спокойно
селект и мультиселект разные совершенно для меня
выглядят по разному
данные по разному выдают и принимают

Alex
03.05.2018
10:48:29

Artem
03.05.2018
10:48:58

Valeriy
03.05.2018
10:49:15

Alex
03.05.2018
10:50:09
ну тип сама суть гетера так себе если будут кастомные Field

Valeriy
03.05.2018
10:50:23
а когда ты из простого компоненты пытаешься сделать монстра, то жди беды

Alex
03.05.2018
10:50:24
типа тупой элемент который умеет только onChange когда изменился

Valeriy
03.05.2018
10:50:54

Artem
03.05.2018
10:51:06
ну смотри чел в форму спокойно можешь затащить нестандартный компонент, на который у тебя адаптера не будет, и собстсвенно всё) а если дашь ему сверху регистрировать в hoc что слушать, как обрабатывать, и что с этим делать, буде намного гибче

Valeriy
03.05.2018
10:51:14
вот есть onChange, который проносится через контекст в нижние хоки нипутов

Google

Alex
03.05.2018
10:51:20
не я про компонент input который умеет только onChage при изменении

Valeriy
03.05.2018
10:51:30
вызывается он в рутовой форме и на onChange вызывается getter

Alex
03.05.2018
10:51:43
а может быть кастомный компонент который будет вызыватьonChange и передавать в него своё значение
и у этого компонента нельзя будет получить значение, допустим никак
через ссылку

Valeriy
03.05.2018
10:52:27
я это указываю при создании хока

Alex
03.05.2018
10:52:38
а у этого компонента нет
вот левый компонент

Admin
ERROR: S client not available

Alex
03.05.2018
10:52:45
из какой-то либы
умеет только onChange

Valeriy
03.05.2018
10:53:04
не понимаю тебя сейчас

Alex
03.05.2018
10:53:35
есть компонент, который при изменении вызывает onChange, у этого компонента внутри не хранится значение нигде

Valeriy
03.05.2018
10:53:36
я ему силой впихиваю туда реф
{this.props.refType]: this.element

Alex
03.05.2018
10:54:17
да я понял, у тебя ссылка на этот компонент
класс

Google

Valeriy
03.05.2018
10:54:24
которы йты зная свой компонент напишешь чтобы передавать значение

Alex
03.05.2018
10:54:33
у этого класса нет поля которое бы отражало его значение

Dima
03.05.2018
10:54:35
всем привет. Подскажите, можно или как-то с помощью вебпака сделать оффлайн bundle? т.е. чтобы он кроме как к беку никуда не лез а все имел в бандле. Сейчас в material-ui фреймворке идут запросы на fonts.googleapi

Alex
03.05.2018
10:54:48
этот компонент при изменении вызывает onChange и всё

Artem
03.05.2018
10:55:39

Valeriy
03.05.2018
10:55:53

Alex
03.05.2018
10:56:48
ну, а я говорю представить ситуацию что такой гетер получить нельзя физически

Valeriy
03.05.2018
10:56:57
я сейчас набросал прототип решения, которое хотел бы видеть в виде нормальной либы на самом деле

Alex
03.05.2018
10:56:59
потому что компонент передаёт значение в onChange

Dima
03.05.2018
10:57:11
это запрос на шрифты, вебпак там вообщем не причём)
я просто думал, может у вебпака есть какой-то параметр в конфиге, чтобы при сборке бандла он все зависимости из инета подкачивал. Такой автомномный бандл. Т.к. spa будет работать в среде, где нет доступа в инет, и эти запросы не работают. Понятно что можно руками скачать, перенаправить и т.п., но может есть какой-то автоматизированный вариант

Valeriy
03.05.2018
10:57:14

Alex
03.05.2018
10:57:22
почему?
element это экземпляр, как ты получишь данные к тому что он нарисовал?

Valeriy
03.05.2018
10:57:38
ну вот еще раз, onChange у твоего компонента кастомного есть же?
в него же приходит значение или эвент какой-то

Alex
03.05.2018
10:57:57

Valeriy
03.05.2018
10:58:02
ты эту всю инфу получаешь в геттере и делаешь с ней что хочешь
конвертируешь в нужный тебе формат

Alex
03.05.2018
10:58:22
а, в гетере по мимо ссылки на элемент ещё и эвент есть?

Valeriy
03.05.2018
10:58:30
да конечно же блин
там целый блок инфы о компоненте

Alex
03.05.2018
10:58:41
всё тогда