UNPKG

scriptable-testlab

Version:

A lightweight, efficient tool designed to manage and update scripts for Scriptable.

75 lines (64 loc) 1.43 kB
import {AbsShareSheet} from 'scriptable-abstract'; interface ShareSheetResult { completed: boolean; activity_type: string; } interface ShareSheetState { lastSharedItems: any[]; lastResult: ShareSheetResult | null; } /** * Mock implementation of Scriptable's ShareSheet global variable * Provides functionality for sharing content with other apps * * @implements ShareSheet */ export class MockShareSheet extends AbsShareSheet<ShareSheetState> { static get instance(): MockShareSheet { return super.instance as MockShareSheet; } constructor() { super({ lastSharedItems: [], lastResult: null, }); } /** * @inheritdoc */ async present(activityItems: readonly any[]): Promise<ShareSheetResult> { const result = { completed: true, activity_type: 'com.apple.UIKit.activity.CopyToPasteboard', }; this.setState({ lastSharedItems: [...activityItems], lastResult: result, }); return result; } /** * @additional * Get the last shared items */ getLastSharedItems(): any[] { return this.state.lastSharedItems; } /** * @additional * Get the last result */ getLastResult(): ShareSheetResult | null { return this.state.lastResult; } /** * @additional * Clear sharing history */ clear(): void { this.setState({ lastSharedItems: [], lastResult: null, }); } }