textiot
Version:
A framework for building web and native (IoT) Dapps on the IPFS network
79 lines (70 loc) • 1.81 kB
text/typescript
import { NativeModules } from 'react-native'
import { Buffer } from 'buffer'
import {
ExternalInvite,
IExternalInvite,
InviteViewList,
IInviteViewList
} from './model'
const { InvitesBridge } = NativeModules
/**
* Add a new Thread invite by invitee address.
* ```typescript
* Textile.invites.add(threadId, address);
* ```
*/
export async function add(threadId: string, address: string): Promise<void> {
return InvitesBridge.add(threadId, address)
}
/**
* Add an external Thread invite, returning a sharable object.
* ```typescript
* Textile.invites.addExternal(threadId);
* ```
*/
export async function addExternal(threadId: string): Promise<IExternalInvite> {
const result = await InvitesBridge.addExternal(threadId)
return ExternalInvite.decode(Buffer.from(result, 'base64'))
}
/**
* List all pending thread invites.
* ```typescript
* Textile.invites.list();
* ```
*/
export async function list(): Promise<IInviteViewList> {
const result = await InvitesBridge.list()
return InviteViewList.decode(Buffer.from(result, 'base64'))
}
/**
* Accept invite by thread id.
* ```typescript
* Textile.invites.accept(threadId);
* ```
*/
export async function accept(inviteId: string): Promise<string> {
const result = await InvitesBridge.accept(inviteId)
return result as string
}
/**
* Accept an external invite.
* ```typescript
* Textile.invites.acceptExternal(id, key);
* ```
*/
export async function acceptExternal(
id_: string,
key: string
): Promise<string> {
const result = await InvitesBridge.acceptExternal(id_, key)
return result as string
}
/**
* Ignore invite by thread id.
* ```typescript
* Textile.invites.ignore(threadId);
* ```
*/
export async function ignore(inviteId: string): Promise<void> {
return InvitesBridge.ignore(inviteId)
}