
Denis
02.05.2016
17:42:46
Сейчас попробую
Т.е viewer?
viewer: User
в GetFatQuery мы указываем те данные, что нам нужны назад от мутации?

Google

Denis
02.05.2016
18:04:04
а

Oleg
02.05.2016
18:07:24
кто любит в Clojure и ClojureScript — прямо сейчас идёт хэнгаутс с tonsky
https://plus.google.com/hangouts/_/hoaevent/AP36tYdSQ4H5i0-KC9l7ROwcprmKn4GcL7f8FVbPaUoj7h0P7NIEdw?hl=en&authuser=0

Viacheslav
02.05.2016
18:08:06
@DenisIzmaylov получилось?

Denis
02.05.2016
18:11:07
причём user в fatQuery отсутствует, видимо из getConfig() добавляет

Viacheslav
02.05.2016
18:12:34
если ты берешь из viewer значит надо viewer

Ҫѐҏӗѫӑ
02.05.2016
18:12:47
This video call is full.
как посмотреть этот хенгаут-то?
на ютюб транслируют?

Viacheslav
02.05.2016
18:16:08
в fat query указывать parent не надо

Denis
02.05.2016
18:17:05
в getConfig() мы можем использовать только то, что в fatQuery?
описали

Viacheslav
02.05.2016
18:17:34
там зависит от типа конфига

Denis
02.05.2016
18:18:40
Если образно задачу сформулировать: есть viewer.books(filter: UNREAD) и нужно вызвать мутацию, которая удалит book из этого фильтра и перенесёт в filter: READ

Google

Denis
02.05.2016
18:19:38
Как я понял, для этого необходимо описать две записи getConfig() - FIELDS_CHANGE и RANGE_ADD

Viacheslav
02.05.2016
18:19:46
это похоже на правду кроме parent

Denis
02.05.2016
18:19:50
rangeBehaviors: {
'filter(READ)': 'append',
'filter(UNREAD)': 'remove',
},

Viacheslav
02.05.2016
18:20:37
parentName viewer
parentID Id of viewer

Denis
02.05.2016
18:22:22
Да, viewer имеет тип User, но Payload у мутации:
book: Insight!
bookID: ID!
topic: Topic!
bookEdge: TopicBooksEdge!
user: User!

Viacheslav
02.05.2016
18:25:01
parent не из payload
это имя в кеше
оно совпадает с именем поля

Denis
02.05.2016
18:26:00
Когда я описываю в getConfig() через user
type: 'RANGE_ADD',
parentName: 'user',
parentID: props.user.id,
connectionName: 'books',
edgeName: 'bookEdge',
rangeBehaviors: {
'filter(READ)': 'append',
'filter(UNREAD)': 'remove',
},
Получаю ответ от сервера:
Cannot query field \\"topic\\" on type \\"TopicBooksEdge\\".","locations":[{"line":162,"column":5}]},{"message":"Fragment \\"F2\\" cannot be spread here as objects of type \\"TopicBooksEdge\\" can never be of type \\"UserBooksEdge\\"

Viacheslav
02.05.2016
18:27:14
хм
откуда поле topic у edge?
books.edges.topic

Denis
02.05.2016
18:30:39
есть books.edges.node:Book и books.edges.topic:Topic

Viacheslav
02.05.2016
18:42:05
вы сами добавили,
?
просто это не описано в стандарте и может быть проблемы из-за этого
вернее добавить book.topic

Denis
02.05.2016
18:46:34
у клиента такой API уже есть, вроде на других приложениях работает
backend не мы в этом проекте делаем

Viacheslav
02.05.2016
18:53:59
понятно, хм

Google

Viacheslav
02.05.2016
18:54:49
если сделать таки parentName: "viewer" что будет?

Denis
02.05.2016
19:02:40
Invalid field name on fat query, viewer
причём если user поставить
type: 'RANGE_ADD',
parentName: 'user',
parentID: user.id,
connectionName: 'topics',
edgeName: 'topicBookEdge',
rangeBehaviors: {
'filter(READ)': 'append',
'filter(UNREAD)': 'remove',
},
он даже обновляется
но
кстати, response уже другой приходит. оказывается getConfig() на ответ влияет тоже

Viacheslav
02.05.2016
19:06:13
да, влияет ?
они друг друга дополняют

Denis
02.05.2016
19:06:43
что-то новенькое )
но сообщение странное:
Warning: RelayMutation: The connection `topics{filter:"FAVORITE"}` on the mutation field `user` that corresponds to the ID `VXNlcjowMGY5ZmNhZS1jM2YyLTQ2MWMtOWJiMy1mNzRmNGM0OWE1ZmY=` did not match any of the `rangeBehaviors` specified in your RANGE_ADD config. This means that the entire connection will be refetched. Configure a range behavior for this mutation in order to fetch only the new edge and to enable optimistic mutations or use `refetch` to squelch this warning.

Viacheslav
02.05.2016
19:08:03
тут фильтр favorite
а на скриншотах read и unread

Denis
02.05.2016
19:09:16
и в коде так
он как-то модифицирует внутри всё видимо

Viacheslav
02.05.2016
19:10:07
ты где-то фетчишь favorite?
видимо он хочет чтобы ты описал как мутация влияет и на этот случай

Denis
02.05.2016
19:10:41
нет
а, понятно тогда почему работает, потому что он refetch просто делает
Relay :P

Google

Viacheslav
02.05.2016
19:12:27
да, все сложно
я с rangeBehaviour не работал особо, отлично делал два разных поля
readedBooks unreadedBooks

Dmitrii
02.05.2016
19:14:54
при всей моей любви к Relay. он скотина сложный очень :)
мой первый hello world взял у меня часов 5 наверное

Viacheslav
02.05.2016
19:16:35
меня бесит что Babel plugin обязательный

Denis
02.05.2016
19:17:11
)))
клуб ненависти Relay

Dmitrii
02.05.2016
19:17:25
ага.. но без него никак :/

Viacheslav
02.05.2016
19:17:50
мы его нежно
@dmitriiabramov почему нельзя в рантайме!
?

Dmitrii
02.05.2016
19:19:21
ну вобще можно конечно. но тогда relay будет еще сложнее :)

Viacheslav
02.05.2016
19:20:21
кроме компиляции запросов он что-то еще делает?
компиляцию можно делать в рантайме прозрачно для приложения

Denis
02.05.2016
19:21:28
Hot Relay Reload
ждём от Абрамова
Димы Абрамова :))

Ҫѐҏӗѫӑ
02.05.2016
19:22:40
Дима, а ты в какой команде в фб?
в смысле над чем работаешь? jest?

Google

Ҫѐҏӗѫӑ
02.05.2016
19:24:04
relay?

Denis
02.05.2016
19:24:35
версии в package.json поднимает
https://github.com/facebook/react-native/blob/master/package.json

Dmitrii
02.05.2016
19:26:37
с relay к сожалению почти не работаю, только на сайд проектах домашних юзал :/

Ҫѐҏӗѫӑ
02.05.2016
19:27:56
@DenisIzmaylov психанули

Denis
02.05.2016
19:28:03
жесть
jeeeсть

Dmitrii
02.05.2016
19:28:51
:D

Dan
02.05.2016
19:29:41
??

Kirill
02.05.2016
19:33:51
https://github.com/facebook/react-native/commit/bbeeaa1274b30e92b962444682864b21169b5a2e

Denis
02.05.2016
19:37:59
победил эту траблу
type: 'RANGE_ADD',
parentName: 'topic',
parentID: topic.id,
connectionName: 'books',
edgeName: 'topicBookEdge',
rangeBehaviors: {
'filter(RATED)': 'append',
'filter(UNRATED)': 'remove',
},
причём
ещё надо было:
type: 'FIELDS_CHANGE',
fieldIDs: {
book: book.id,
topic: topic.id,
user: user.id,
},
без user не работает
оно видимо циклично прогоняет связи

Viacheslav
02.05.2016
19:41:18
что-то очень странное

Denis
02.05.2016
19:41:27
ты про Relay?