···11import {Share} from 'react-native'
22// import * as Sharing from 'expo-sharing'
33-import Clipboard from '@react-native-clipboard/clipboard'
33+import {setStringAsync} from 'expo-clipboard'
4455import {isAndroid, isIOS} from 'platform/detection'
66import * as Toast from '#/view/com/util/Toast'
···1919 } else {
2020 // React Native Share is not supported by web. Web Share API
2121 // has increasing but not full support, so default to clipboard
2222- Clipboard.setString(url)
2222+ setStringAsync(url)
2323 Toast.show('Copied to clipboard')
2424 }
2525}
+13-12
src/view/com/modals/AddAppPasswords.tsx
···11import React, {useState} from 'react'
22-import {StyleSheet, TextInput, View, TouchableOpacity} from 'react-native'
33-import {Text} from '../util/text/Text'
44-import {Button} from '../util/forms/Button'
55-import {s} from 'lib/styles'
66-import {usePalette} from 'lib/hooks/usePalette'
77-import {isNative} from 'platform/detection'
22+import {StyleSheet, TextInput, TouchableOpacity, View} from 'react-native'
33+import {setStringAsync} from 'expo-clipboard'
84import {
95 FontAwesomeIcon,
106 FontAwesomeIconStyle,
117} from '@fortawesome/react-native-fontawesome'
1212-import Clipboard from '@react-native-clipboard/clipboard'
1313-import * as Toast from '../util/Toast'
88+import {msg, Trans} from '@lingui/macro'
99+import {useLingui} from '@lingui/react'
1010+1411import {logger} from '#/logger'
1515-import {Trans, msg} from '@lingui/macro'
1616-import {useLingui} from '@lingui/react'
1712import {useModalControls} from '#/state/modals'
1813import {
1919- useAppPasswordsQuery,
2014 useAppPasswordCreateMutation,
1515+ useAppPasswordsQuery,
2116} from '#/state/queries/app-passwords'
1717+import {usePalette} from 'lib/hooks/usePalette'
1818+import {s} from 'lib/styles'
1919+import {isNative} from 'platform/detection'
2020+import {Button} from '../util/forms/Button'
2121+import {Text} from '../util/text/Text'
2222+import * as Toast from '../util/Toast'
22232324export const snapPoints = ['70%']
2425···72737374 const onCopy = React.useCallback(() => {
7475 if (appPassword) {
7575- Clipboard.setString(appPassword)
7676+ setStringAsync(appPassword)
7677 Toast.show(_(msg`Copied to clipboard`))
7778 setWasCopied(true)
7879 }
+21-22
src/view/com/modals/ChangeHandle.tsx
···11import React, {useState} from 'react'
22-import Clipboard from '@react-native-clipboard/clipboard'
33-import {ComAtprotoServerDescribeServer} from '@atproto/api'
44-import * as Toast from '../util/Toast'
52import {
63 ActivityIndicator,
74 StyleSheet,
85 TouchableOpacity,
96 View,
107} from 'react-native'
88+import {setStringAsync} from 'expo-clipboard'
99+import {ComAtprotoServerDescribeServer} from '@atproto/api'
1110import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1212-import {ScrollView, TextInput} from './util'
1313-import {Text} from '../util/text/Text'
1414-import {Button} from '../util/forms/Button'
1515-import {SelectableBtn} from '../util/forms/SelectableBtn'
1616-import {ErrorMessage} from '../util/error/ErrorMessage'
1717-import {s} from 'lib/styles'
1818-import {createFullHandle, makeValidHandle} from 'lib/strings/handles'
1919-import {usePalette} from 'lib/hooks/usePalette'
2020-import {useTheme} from 'lib/ThemeContext'
2121-import {useAnalytics} from 'lib/analytics/analytics'
2222-import {cleanError} from 'lib/strings/errors'
1111+import {msg, Trans} from '@lingui/macro'
1212+import {useLingui} from '@lingui/react'
1313+2314import {logger} from '#/logger'
2424-import {Trans, msg} from '@lingui/macro'
2525-import {useLingui} from '@lingui/react'
2615import {useModalControls} from '#/state/modals'
1616+import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle'
2717import {useServiceQuery} from '#/state/queries/service'
2828-import {useUpdateHandleMutation, useFetchDid} from '#/state/queries/handle'
2918import {
1919+ getAgent,
2020+ SessionAccount,
3021 useSession,
3122 useSessionApi,
3232- SessionAccount,
3333- getAgent,
3423} from '#/state/session'
2424+import {useAnalytics} from 'lib/analytics/analytics'
2525+import {usePalette} from 'lib/hooks/usePalette'
2626+import {cleanError} from 'lib/strings/errors'
2727+import {createFullHandle, makeValidHandle} from 'lib/strings/handles'
2828+import {s} from 'lib/styles'
2929+import {useTheme} from 'lib/ThemeContext'
3030+import {ErrorMessage} from '../util/error/ErrorMessage'
3131+import {Button} from '../util/forms/Button'
3232+import {SelectableBtn} from '../util/forms/SelectableBtn'
3333+import {Text} from '../util/text/Text'
3434+import * as Toast from '../util/Toast'
3535+import {ScrollView, TextInput} from './util'
35363637export const snapPoints = ['100%']
3738···321322 // events
322323 // =
323324 const onPressCopy = React.useCallback(() => {
324324- Clipboard.setString(
325325- isDNSForm ? `did=${currentAccount.did}` : currentAccount.did,
326326- )
325325+ setStringAsync(isDNSForm ? `did=${currentAccount.did}` : currentAccount.did)
327326 Toast.show(_(msg`Copied to clipboard`))
328327 }, [currentAccount, isDNSForm, _])
329328 const onChangeHandle = React.useCallback(
+20-19
src/view/com/modals/InviteCodes.tsx
···11import React from 'react'
22import {
33+ ActivityIndicator,
34 StyleSheet,
45 TouchableOpacity,
56 View,
66- ActivityIndicator,
77} from 'react-native'
88+import {setStringAsync} from 'expo-clipboard'
89import {ComAtprotoServerDefs} from '@atproto/api'
910import {
1011 FontAwesomeIcon,
1112 FontAwesomeIconStyle,
1213} from '@fortawesome/react-native-fontawesome'
1313-import Clipboard from '@react-native-clipboard/clipboard'
1414-import {Text} from '../util/text/Text'
1515-import {Button} from '../util/forms/Button'
1616-import * as Toast from '../util/Toast'
1717-import {ScrollView} from './util'
1414+import {msg, Trans} from '@lingui/macro'
1515+import {useLingui} from '@lingui/react'
1616+1717+import {makeProfileLink} from '#/lib/routes/links'
1818+import {useInvitesAPI, useInvitesState} from '#/state/invites'
1919+import {useModalControls} from '#/state/modals'
2020+import {
2121+ InviteCodesQueryResponse,
2222+ useInviteCodesQuery,
2323+} from '#/state/queries/invites'
1824import {usePalette} from 'lib/hooks/usePalette'
1919-import {isWeb} from 'platform/detection'
2025import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
2121-import {Trans, msg} from '@lingui/macro'
2226import {cleanError} from 'lib/strings/errors'
2323-import {useModalControls} from '#/state/modals'
2424-import {useInvitesState, useInvitesAPI} from '#/state/invites'
2525-import {UserInfoText} from '../util/UserInfoText'
2626-import {makeProfileLink} from '#/lib/routes/links'
2727-import {Link} from '../util/Link'
2727+import {isWeb} from 'platform/detection'
2828import {ErrorMessage} from '../util/error/ErrorMessage'
2929-import {
3030- useInviteCodesQuery,
3131- InviteCodesQueryResponse,
3232-} from '#/state/queries/invites'
3333-import {useLingui} from '@lingui/react'
2929+import {Button} from '../util/forms/Button'
3030+import {Link} from '../util/Link'
3131+import {Text} from '../util/text/Text'
3232+import * as Toast from '../util/Toast'
3333+import {UserInfoText} from '../util/UserInfoText'
3434+import {ScrollView} from './util'
34353536export const snapPoints = ['70%']
3637···148149 const uses = invite.uses
149150150151 const onPress = React.useCallback(() => {
151151- Clipboard.setString(invite.code)
152152+ setStringAsync(invite.code)
152153 Toast.show(_(msg`Copied to clipboard`))
153154 setInviteCopied(invite.code)
154155 }, [setInviteCopied, invite, _])
+2-2
src/view/com/util/forms/PostDropdownBtn.tsx
···11import React, {memo} from 'react'
22import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native'
33+import {setStringAsync} from 'expo-clipboard'
34import {
45 AppBskyActorDefs,
56 AppBskyFeedPost,
···910import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1011import {msg} from '@lingui/macro'
1112import {useLingui} from '@lingui/react'
1212-import Clipboard from '@react-native-clipboard/clipboard'
1313import {useNavigation} from '@react-navigation/native'
14141515import {makeProfileLink} from '#/lib/routes/links'
···154154 const onCopyPostText = React.useCallback(() => {
155155 const str = richTextToString(richText, true)
156156157157- Clipboard.setString(str)
157157+ setStringAsync(str)
158158 Toast.show(_(msg`Copied to clipboard`))
159159 }, [_, richText])
160160
+2-2
src/view/screens/Settings/index.tsx
···1010 View,
1111 ViewStyle,
1212} from 'react-native'
1313+import {setStringAsync} from 'expo-clipboard'
1314import {
1415 FontAwesomeIcon,
1516 FontAwesomeIconStyle,
1617} from '@fortawesome/react-native-fontawesome'
1718import {msg, Trans} from '@lingui/macro'
1819import {useLingui} from '@lingui/react'
1919-import Clipboard from '@react-native-clipboard/clipboard'
2020import {useFocusEffect, useNavigation} from '@react-navigation/native'
2121import {useQueryClient} from '@tanstack/react-query'
2222···245245 }, [onboardingDispatch, _])
246246247247 const onPressBuildInfo = React.useCallback(() => {
248248- Clipboard.setString(
248248+ setStringAsync(
249249 `Build version: ${AppInfo.appVersion}; Platform: ${Platform.OS}`,
250250 )
251251 Toast.show(_(msg`Copied build version to clipboard`))