one
Version:
One is a React framework for web, iOS, and Android apps.
40 lines (30 loc) • 1.19 kB
text/typescript
import { NitroModules } from 'react-native-nitro-modules'
import { rethrowNativeError } from '../nativeError'
import type { OneQuickActions, QuickActionItem } from '../specs/OneQuickActions.nitro'
import { assertQuickActionItems, assertQuickActionListener } from './validate'
export type { QuickActionItem }
let hybrid: OneQuickActions | undefined
function native(): OneQuickActions {
hybrid ??= NitroModules.createHybridObject<OneQuickActions>('OneQuickActions')
return hybrid
}
function setItems(items: QuickActionItem[]): Promise<void> {
assertQuickActionItems(items)
return native().setItems(items).catch(rethrowNativeError)
}
function getItems(): Promise<QuickActionItem[]> {
return native().getItems().catch(rethrowNativeError)
}
function getInitialAction(): string | null {
return native().getInitialAction() ?? null
}
function clearInitialAction(): void {
native().clearInitialAction()
}
function addListener(listener: (id: string) => void): () => void {
assertQuickActionListener(listener)
return native().addListener(listener)
}
export const QuickActions = Object.freeze({
setItems, getItems, getInitialAction, clearInitialAction, addListener,
})