UNPKG

react-native-studia

Version:
60 lines (44 loc) 1.89 kB
// @flow 'use strict' import type { StudiaManager } from './StudiaManager' import type { NativePeer } from './StudiaModules' import type { Subscriber, Base64 } from './Types' import { Subscription, Socket, PeerState, Feed } from './Types' import { Message } from './Message' import { StudiaError } from './StudiaError' export class Peer implements NativePeer { _manager: StudiaManager id: Subscriber name: string isReachable: boolean icon: ?Base64 constructor(nativePeer: NativePeer, manager: StudiaManager) { Object.assign(this, nativePeer, { _manager: manager }) } getFeeds(callback: (error: ?StudiaError, feeds: ?Feed[]) => void) : Subscription { return this._manager.getPeerFeeds(this.id, callback) } getMessages(identityId: Subscriber, callback: (error: ?StudiaError, messages: ?Message[]) => void) : Subscription { return this._manager.getPrivateMessages(identityId, this.id, callback) } getSocket(identityId: Subscriber, callback: (error: ?StudiaError) => void): Socket<Message> { return this._manager.getMessageSocket(identityId, this.id, callback) } getState(identityId: Subscriber) : Promise<$Keys<typeof PeerState>> { return this._manager.getPeerState(identityId, this.id) } onMessageReceived(listener: (message: Message) => void) : Subscription { return this._manager.onMessageReceived(listener) } onMessageDelivered(listener: (message: Message) => void) : Subscription { return this._manager.onMessageDelivered(listener) } onFeedAdded(listener: (feed: Feed) => void) : Subscription { return this._manager.onFeedAdded(listener) } // onFeedReset(listener: (feeds: Feed[]) => void) : Subscription { // return this._manager.onFeedReset(listener) // } }