UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

49 lines (42 loc) • 1.78 kB
import type { HybridObject } from 'react-native-nitro-modules' // clipboard behind One.Clipboard, matching expo-clipboard: strings with an // optional html format, images as base64 data uris, urls, and a change // listener. reads are async because reading the pasteboard can raise the // system paste prompt. option formats stay strings (like the notification // trigger type) so an unknown one still reaches native; the js entry // validates first. export interface ClipboardGetStringOptions { preferredFormat?: string } export interface ClipboardSetStringOptions { inputFormat?: string } export interface ClipboardSetStringOptions { inputFormat?: string } export interface ClipboardGetImageOptions { format: string jpegQuality?: number } export interface ClipboardImageResult { // base64 image data with the data uri prefix (data:image/png;base64, or // data:image/jpeg;base64,), usable directly as an Image source. data: string width: number height: number } export interface OneClipboard extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> { getString(options: ClipboardGetStringOptions): Promise<string> setString(text: string, options: ClipboardSetStringOptions): Promise<boolean> hasString(): Promise<boolean> getImage(options: ClipboardGetImageOptions): Promise<ClipboardImageResult | undefined> setImage(base64Image: string): Promise<void> hasImage(): Promise<boolean> getUrl(): Promise<string | undefined> setUrl(url: string): Promise<void> hasUrl(): Promise<boolean> // one native listener slot, fanned out to js listeners by the js entry: // installed on the first addListener, cleared on the last remove. setClipboardListener(listener: (contentTypes: string[]) => void): void clearClipboardListener(): void }