| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- interface ClipboardModuleType {
- setStringAsync?: (text: string) => Promise<boolean | void>;
- setString?: (text: string) => void;
- }
- let ClipboardModule: ClipboardModuleType | null = null;
- try {
- // eslint-disable-next-line @typescript-eslint/no-require-imports
- ClipboardModule = require("@react-native-clipboard/clipboard").default;
- } catch {
- try {
- // eslint-disable-next-line @typescript-eslint/no-require-imports
- ClipboardModule = require("expo-clipboard");
- } catch {
- ClipboardModule = null;
- }
- }
- export const setStringToClipboard = async (text: string): Promise<boolean> => {
- if (!ClipboardModule) {
- return false;
- }
- try {
- if (ClipboardModule.setStringAsync) {
- await ClipboardModule.setStringAsync(text);
- return true;
- }
- if (ClipboardModule.setString) {
- ClipboardModule.setString(text);
- return true;
- }
- return false;
- } catch {
- return false;
- }
- };
|