Skip to content

Commit

Permalink
fix: GetContact to Contact
Browse files Browse the repository at this point in the history
Signed-off-by: Godefroy Ponsinet <godefroy.ponsinet@outlook.com>
  • Loading branch information
90dy committed Dec 11, 2018
1 parent 2b70efe commit 9598650
Show file tree
Hide file tree
Showing 13 changed files with 154 additions and 133 deletions.
5 changes: 4 additions & 1 deletion client/react-native/common/components/Screens/Chats/List.js
Expand Up @@ -81,7 +81,10 @@ export default class ListScreen extends PureComponent {
variables={queries.ConversationList.defaultVariables}
fragment={fragments.ConversationList}
alias='ConversationList'
subscriptions={[subscriptions.conversationInvite]}
subscriptions={[
subscriptions.conversationInvite,
subscriptions.conversationNewMessage,
]}
renderItem={props => <Item {...props} navigation={navigation} />}
/>
</Screen>
Expand Down
Expand Up @@ -53,7 +53,7 @@ class SharePublicKeyScreen extends PureComponent {
shareButton
copyButton
self
data={state.data.ContactList.edges[0].node}
data={state.data.Contact}
/>
)
}
Expand Down
212 changes: 101 additions & 111 deletions client/react-native/common/components/Screens/Settings/List.js
@@ -1,132 +1,122 @@
import React, { PureComponent } from 'react'
import { Image, ActivityIndicator, Linking } from 'react-native'
import React, { PureComponent } from 'react'

import { Menu, Text, Screen } from '../../Library'
import { QueryReducer } from '../../../relay'
import { colors } from '../../../constants'
import { graphql } from 'react-relay'
import { fragments } from '../../../graphql'
import { merge } from '../../../helpers'

export default class List extends PureComponent {
static Menu = (
{
static Menu = fragments.Contact(
({
navigation,
data: { id, displayName, overrideDisplayName },
availableUpdate,
},
) => (
<Menu absolute>
<Menu.Header
icon={
<Image
style={{ width: 78, height: 78, borderRadius: 39 }}
source={{
uri: 'https://api.adorable.io/avatars/285/' + id + '.png',
}}
/>
}
title={overrideDisplayName || displayName}
/>
<Menu.Section>
<Menu.Item
icon='user'
title='My account'
onPress={() => navigation.push('settings/my-account')}
}) => (
<Menu absolute>
<Menu.Header
icon={
<Image
style={{ width: 78, height: 78, borderRadius: 39 }}
source={{
uri: 'https://api.adorable.io/avatars/285/' + id + '.png',
}}
/>
}
title={overrideDisplayName || displayName}
/>
{availableUpdate
? <Menu.Item
icon='arrow-up-circle'
title='An update of the app is available'
onPress={() => Linking.openURL(availableUpdate['manifest-url']).catch(e => console.error(e))}
color={colors.red}
<Menu.Section>
<Menu.Item
icon='user'
title='My account'
onPress={() => navigation.push('settings/my-account')}
/>

: null
}
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='terminal'
title='Dev tools'
onPress={() => navigation.push('settings/devtools')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='lock'
title='Security & privacy (not implem.)'
onPress={() => navigation.push('settings/security-and-privacy')}
/>
<Menu.Item
icon='send'
title='Messages settings (not implem.)'
onPress={() => navigation.push('settings/messages-settings')}
/>
<Menu.Item
icon='bell'
title='Notifications'
onPress={() => navigation.push('settings/notifications')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='info'
title='About berty'
onPress={() => navigation.push('settings/about')}
/>
<Menu.Item
icon='activity'
title='News (not implem.)'
onPress={() => navigation.push('settings/news')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='life-buoy'
title='Help'
onPress={() => navigation.push('settings/help')}
/>
<Menu.Item
icon='layers'
title='Legal terms'
onPress={() => navigation.push('settings/legal')}
/>
</Menu.Section>
</Menu>
{availableUpdate ? (
<Menu.Item
icon='arrow-up-circle'
title='An update of the app is available'
onPress={() =>
Linking.openURL(availableUpdate['manifest-url']).catch(e =>
console.error(e)
)
}
color={colors.red}
/>
) : null}
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='terminal'
title='Dev tools'
onPress={() => navigation.push('settings/devtools')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='lock'
title='Security & privacy (not implem.)'
onPress={() => navigation.push('settings/security-and-privacy')}
/>
<Menu.Item
icon='send'
title='Messages settings (not implem.)'
onPress={() => navigation.push('settings/messages-settings')}
/>
<Menu.Item
icon='bell'
title='Notifications'
onPress={() => navigation.push('settings/notifications')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='info'
title='About berty'
onPress={() => navigation.push('settings/about')}
/>
<Menu.Item
icon='activity'
title='News (not implem.)'
onPress={() => navigation.push('settings/news')}
/>
</Menu.Section>
<Menu.Section>
<Menu.Item
icon='life-buoy'
title='Help'
onPress={() => navigation.push('settings/help')}
/>
<Menu.Item
icon='layers'
title='Legal terms'
onPress={() => navigation.push('settings/legal')}
/>
</Menu.Section>
</Menu>
)
)

render () {
const { navigation } = this.props
const {
navigation,
screenProps: {
context: { queries },
},
} = this.props

return (
<Screen>
<QueryReducer
query={graphql`
query ListSettingsQuery($filter: BertyEntityContactInput) {
ContactList(
filter: $filter
first: 1
orderBy: ""
orderDesc: false
) {
edges {
node {
id
displayName
overrideDisplayName
}
}
}
}
`}
variables={{
filter: {
id: '',
status: 42,
displayName: '',
displayStatus: '',
overrideDisplayName: '',
overrideDisplayStatus: '',
query={queries.Contact.graphql}
variables={merge([
queries.Contact.defaultVariables,
{
filter: {
status: 42,
},
},
}}
])}
>
{(state, retry) => {
switch (state.type) {
Expand All @@ -137,7 +127,7 @@ export default class List extends PureComponent {
return (
<List.Menu
navigation={navigation}
data={state.data.ContactList.edges[0].node}
data={state.data.Contact}
availableUpdate={this.props.screenProps.availableUpdate}
/>
)
Expand Down
2 changes: 1 addition & 1 deletion client/react-native/common/graphql/queries/Contact.js
Expand Up @@ -3,7 +3,7 @@ import { contact } from '../../utils'
import { merge } from '../../helpers'

const query = graphql`
query ContactQuery($filter: BertyEntityContact) {
query ContactQuery($filter: BertyEntityContactInput) {
Contact(filter: $filter) {
id
...Contact
Expand Down
Expand Up @@ -9,11 +9,13 @@ export default context => ({
EventStream(context).subscribe({
updater:
updater &&
((store, data) => {
(async (store, data) => {
if (data.EventStream.kind === 201) {
const attributes = parseEmbedded(data.EventStream.attributes)
attributes.me.id = btoa('contact:' + attributes.me.id)
return updater && updater(store, attributes.me)
const contact = await context.queries.Contact.fetch({
id: btoa('contact:' + attributes.me.id),
})
return updater(store, contact)
}
}),
}),
Expand Down
Expand Up @@ -8,7 +8,7 @@ export default context => ({
updater &&
(async (store, data) => {
if (data.EventStream.kind === 301) {
console.log(data.EventStream)
console.log('new invite', data.EventStream)
const conversation = await context.queries.Conversation.fetch({
id: data.EventStream.conversationId,
})
Expand Down
Expand Up @@ -8,6 +8,7 @@ export default context => ({
updater &&
(async (store, data) => {
if (data.EventStream.kind === 302) {
console.log('new message', data.EventStream)
const conversation = await context.queries.Conversation.fetch({
id: data.EventStream.conversationId,
})
Expand Down
15 changes: 10 additions & 5 deletions client/react-native/common/relay/Pagination.js
Expand Up @@ -98,11 +98,16 @@ export default class Pagination extends PureComponent {
const { subscriptions = [], fragment, alias, variables } = this.props
this.subscribers = subscriptions.map(s =>
s.subscribe({
updater: genericUpdater(fragment, alias, {
...variables,
count: undefined,
cursor: undefined,
}),
updater: genericUpdater(
fragment,
alias,
Object.keys(variables).reduce((a, k) => {
if (k !== 'cursor' && k !== 'count') {
a[k] = variables[k]
}
return a
}, {})
),
})
)
}
Expand Down
13 changes: 12 additions & 1 deletion client/react-native/common/relay/genericUpdater.js
Expand Up @@ -34,6 +34,8 @@ export default (fragment, alias, args) => {
const helper = new FragmentHelper(fragment)
const connectionHelper = helper.getConnection(alias)
const root = store.getRoot()
console.log({ fragment, alias, args })
console.log({ store, data, deletion })
const connection = ConnectionHandler.getConnection(
root,
helper.getConnection(alias).key,
Expand All @@ -55,12 +57,20 @@ export default (fragment, alias, args) => {
console.log('node', node)
const edges = connection.getLinkedRecords('edges')
const field = Case.camel(args.orderBy || args.sortBy || 'id')
console.log('btoa', node.getValue('id'))
const cursor =
field === 'id'
? atob(node.getValue('id')).split(/:(.+)/)[1]
: node.getValue(field)
console.log('cursor', cursor)
if (edges.length > 0 && edges.some(e => e.getValue('cursor') === cursor)) {
if (
edges.length > 0 &&
edges.some(
e =>
console.log('edges: cursor: ', e.getValue('cursor')) ||
e.getValue('cursor') === cursor
)
) {
// update
return
}
Expand All @@ -75,6 +85,7 @@ export default (fragment, alias, args) => {
)
edge.setValue(cursor, 'cursor')

console.log(store)
if (connectionHelper.direction === 'forward' && args.orderDesc === false) {
console.log('forward')
ConnectionHandler.insertEdgeAfter(connection, edge, cursor)
Expand Down
10 changes: 5 additions & 5 deletions core/api/client/jsonclient/berty.node.service.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 9598650

Please sign in to comment.